php アップローダー 削除機能付き

  1. <?php
  2. $tempfile = $_FILES['file']['tmp_name'];
  3. $filename = './img/'.$_FILES['file']['name'];
  4. if (is_uploaded_file($tempfile)) {
  5.     if (move_uploaded_file($tempfile, $filename)) {
  6.         echo $filename . "をアップロードしました。";
  7.     }
  8. }
  9. ?>
  10. <html lang="ja">
  11. <head>
  12.     <meta charset="UTF-8">
  13.     <title>kimiite.アップロード</title>
  14.       <style>
  15.        <!--
  16.       BODY{
  17.        background-color :#fff;
  18.        margin: auto;
  19.        max-width: 800px;
  20.        /* 最大幅 */
  21.        min-width: 340px;
  22.        /* 最小幅 */
  23.       }
  24.     .br1 {
  25.        padding: 5px;
  26.        }
  27.        -->
  28.       </style>
  29. </head>
  30. <body>
  31. <h3>画像アップロード</h3>
  32. <form action="./image.php" method="post" enctype="multipart/form-data">
  33.     <div id="drop-zone" style="border: 1px solid; padding: 30px;">
  34.         <p>ファイルをドラッグ&ドロップもしくは</p>
  35.         <input type="file" name="file" id="file-input">
  36.     </div>
  37.     <h3>アップロードした画像</h3>
  38.     <div id="preview"></div>
  39.     <input type="submit" style="margin-top: 50px">
  40. </form>
  41. <script type="text/javascript">
  42.     var dropZone = document.getElementById('drop-zone');
  43.     var preview = document.getElementById('preview');
  44.     var fileInput = document.getElementById('file-input');
  45.     dropZone.addEventListener('dragover', function(e) {
  46.         e.stopPropagation();
  47.         e.preventDefault();
  48.         this.style.background = '#e1e7f0';
  49.     }, false);
  50.     dropZone.addEventListener('dragleave', function(e) {
  51.         e.stopPropagation();
  52.         e.preventDefault();
  53.         this.style.background = '#ffffff';
  54.     }, false);
  55.     fileInput.addEventListener('change', function () {
  56.         previewFile(this.files[0]);
  57.     });
  58.     dropZone.addEventListener('drop', function(e) {
  59.         e.stopPropagation();
  60.         e.preventDefault();
  61.         this.style.background = '#ffffff';
  62.         var files = e.dataTransfer.files;
  63.         if (files.length > 1) return alert('アップロードできるファイルは1つだけです。');
  64.         fileInput.files = files;
  65.         previewFile(files[0]);
  66.     }, false);
  67.     function previewFile(file) {
  68.         /* FileReaderで読み込み、プレビュー画像を表示。 */
  69.         var fr = new FileReader();
  70.         fr.readAsDataURL(file);
  71.         fr.onload = function() {
  72.             var img = document.createElement('img');
  73.             img.setAttribute('src', fr.result);
  74.             preview.innerHTML = '';
  75.             preview.appendChild(img);
  76.         };
  77.     }
  78. </script>
  79. <?php
  80. //ディレクトリ名
  81. $dir_path = "./img";
  82. if (is_dir($dir_path))
  83. {
  84. if(is_readable($dir_path))
  85. { // ? ファイルが読み込み可能かどうか
  86. $ch_dir = dir($dir_path); //ディレクトリクラス
  87. }
  88.  }
  89. ?>
  90. <?php
  91. // img以下の画像ファイルを表示
  92.        echo '<p>アップロードされたファイル一覧</p>';
  93.        foreach(glob('img/{*.gif,*.jpg,*.jpeg,*.png,*.tif,*.tif}',GLOB_BRACE) as $file)
  94. ?>
  95. <?php
  96. // img以下の画像ファイルを削除
  97.  if (array_key_exists('delete_file', $_POST)) {
  98.   $filename = $_POST['delete_file'];
  99.   if (file_exists($filename)) {
  100.     unlink($filename);
  101.     echo 'File '.$filename.' has been deleted';
  102.   } else {
  103.     echo 'Could not delete '.$filename.', file does not exist';
  104.   }
  105. }
  106. ?>
  107. <div>
  108.             <?php
  109.             $files = glob("img/*");
  110.             foreach(glob('img/{*.gif,*.jpg,*.jpeg,*.png,*.tif,*.tif}',GLOB_BRACE) as $file){
  111.                 echo htmlspecialchars($file) . '<br />';
  112.                 echo "<div class='divimages'>";
  113.                 echo "<a href = \"".$file. "\" target = \"_blank\" >";
  114.                 echo '<img src="'.$file.'" width="200\'"/></a>';
  115.                 echo '<form method="post">';
  116.   echo '<input type="hidden" value="'.$file.'" name="delete_file" />';
  117.   echo "<div class='br1'></div>";
  118.   echo '<input type="submit" value="Delete image" />';
  119.   echo '</form>';
  120.                 echo "</div>";
  121.             }
  122.             ?>
  123. </div>
  124. </body>
  125. </html>
最終更新日:2020/12/06