2017-04-11 1 views
0

ここに私のコードは、すべての画像がアップロードされ、ポストボタンのクリックで表示されている、私はポストボタンを打った後に一度に表示するようにしようとしている、私は継続を失ってみましたif文の後ろにあるステートメントですが、イメージが壊れてしまいます。出力後にブレークを追加しようとしましたが、最初のイメージのみが表示されます。フォルダ全体ではなく、一度に1つの画像を投稿するにはどうすればよいですか?

<?php 
$folder = "images/"; 

if(isset($_POST['post'])){ 
    if (is_dir($folder)) 
    { 
     if ($open = opendir($folder)) 
     { 
      while (($file = readdir($open)) != false) 
      { 
       if ($file == '.' || $file == '..')continue; 
       { 
        echo '<img src = "images/'.$file.'" width = "150" height = 150>'; 
       } 
      } 

      closedir($open); 
     } 
    } 


    if (isset($_POST['upload'])) 
    { 
     $file_name = $_FILES['file']['name']; 
     $file_type = $_FILES['file']['type']; 
     $file_size = $_FILES['file']['size']; 
     $file_tem_loc = $_FILES['file']['tmp_name']; 
     $file_store = "images/".$file_name; 

     if (move_uploaded_file($file_tem_loc, $file_store)) 
     { 
      echo "files successfully uploaded"; 
     } 
    } 

} 

?> 

<form action = "?" method = "POST" enctype = "multipart/form-data"> 

    <label>Uploading Files</label> 
    <p><input type = "file" name = "file"/> </p> 
    <p> <input type = "submit" name = "upload" value = "Upload Images"> </p> 
    <p> <input type = "submit" name = "post" value = "Post"> </p> 
</form> 
+0

あなたは特定のディレクトリにイメージを表示しています。 if(isset($ _ POST ['post']))の中で(isset($ _ POST ['upload']))アップロード機能が動作しない場合、あなたが保持して以来 – manian

+0

あなたの正確な要求は何ですか – manian

+0

私は気付きました私の唯一の要件は、フォルダ全体ではなく、一度に1つの画像を投稿することであり、ファイルは特定のディレクトリにある必要はないということです。 – abiel

答えて

0

私は、その場合には同じで複数の画像をアップロードするpossibiltyを避けるために、ファイル名にタイムスタンプを付加することにより、アップロードされたファイル名の名前を変更したことに注意してください

<?php 
$folder = "images/"; 
if (isset($_POST['upload'])) 
{ 
    $file_name = $_FILES['file']['name']; 
    $file_type = $_FILES['file']['type']; 
    $file_size = $_FILES['file']['size']; 
    $file_tem_loc = $_FILES['file']['tmp_name']; 
    $file_store = "images/".date('YmdHis').'_'.$file_name; 

    if (move_uploaded_file($file_tem_loc, $file_store)) 
    { 
     echo "<h3>File successfully uploaded<br>Here is the image that you recently uploaded</h3>"; 
     echo '<img src = "'.$file_store.'" width = "150" height = 150>'; 
    } 
} 

echo "<h3>Here are the images that you uploaded so far</h3>"; 
if (is_dir($folder)) 
{ 
    if ($open = opendir($folder)) 
    { 
     while (($file = readdir($open)) != false) 
     { 
      if ($file == '.' || $file == '..')continue; 
      { 
       echo '<img src = "images/'.$file.'" width = "150" height = 150>'; 
      } 
     } 
     closedir($open); 
    } 
} ?> 

<form action="?" method="POST" enctype="multipart/form-data"> 
    <label>Uploading Files</label> 
    <p><input type = "file" name = "file"/> </p> 
    <p> <input type = "submit" name = "upload" value = "Upload Images"> </p> 
    <!--<p> <input type = "submit" name = "post" value = "Post"> </p>--> 
</form> 

、以下のコードを試してみてください既存のファイルを上書きするか、新しいファイルをアップロードすることを許可しません。

+0

ありがとうございますが、これは私がやろうとしていることではありません。投稿ボタンを使って一度に1つの画像を投稿する方法を知っていますか? – abiel

+0

@abiel、一度に1つのファイルしかアップロードされません。アップロードするファイルを複数選択したいのですが、一度に1つのファイルをアップロードする必要がありますか? – manian

関連する問題