2

こんにちは、複数のファイルをアップロードするスクリプトを作成しようとしています。これまでのところすべてが機能し、すべてのファイルがアップロードされています。

私の問題は、アップロードされたファイルの各ファイル名を取得する必要があるため、それらをデータベースに挿入できることです。

これが私のhtmlです:

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

  <input type="file" name="image[]" multiple />
  <input type="submit" value="upload" />

そして、ここにphpがあります:

if (!empty($_FILES['image'])) { 
    $files = $_FILES['image'];

    for($x = 0; $x < count($files['name']); $x++) {
        $name       = $files['name'][$x];
        $tmp_name   = $files['tmp_name'][$x]; 
        $size       = $files['size'][$x]; 

        if (move_uploaded_file($tmp_name, "../folder/" .$name)) {
            echo $name, ' <progress id="bar" value="100" max="100"> </progress> done <br />';
        }
    }
}

誰かがこれで私を助けてくれることを本当に願っています。/JL

4

3 に答える 3

4

インデックスが逆になっています。$_FILESアップロードされた各ファイルの要素を持つ配列です。これらの各要素は、そのファイルの情報を含む連想配列です。であるcount($files['name'])必要があり、count($files)(他の属性についても同様です。ループを使用することもできます。$files['name'][$x]$files[$x]['name']foreach

foreach ($_FILES as $file) {
  $name       = basename($file['name']);
  $tmp_name   = $file['tmp_name'];
  $size       = $file['size'];

  if (move_uploaded_file($tmp_name, "../folder/" .$name)) {
      echo $name, ' <progress id="bar" value="100" max="100"> </progress> done <br />';
  }
}
于 2013-04-17T20:46:10.553 に答える
1

助けてくれてありがとう、変数を作成するだけで機能するようになりました:

$image_1 = (print_r($files['name'][0], true)); 
$image_2 = (print_r($files['name'][1], true)); 
$image_3 = (print_r($files['name'][2], true)); 
于 2013-04-18T07:26:08.950 に答える
1

glob()この機能が役立つと思います:

<?php
    foreach(glob("*.jpg") as $picture)
    {
        echo $picture.'<br />';
    }
?>

デモ結果:

pic1.jpg
pic2.jpg
pic3.jpg
pic4.jpg
...

必要に応じて、ファイル パスと拡張子を必ず変更してください。

于 2013-04-17T20:54:02.513 に答える