1

ユーザーが配列に配置された複数のファイルを選択できるようにするマルチパートフォームがあります。これが私のコードの縮小された部分です:

<form id="fileupload" action="upload.php" method="POST" enctype="multipart/form-data">
    <input type="file" name="files[]" multiple>
</form>

私のupload.phpファイルでは、テキストファイルに書き込み、各ファイルから情報を配置したいと考えています(フォーマット方法は関係ありません。配列は問題ありません)。

$date = $_POST["date"];
$files = $_POST["files"];


$myFile = $date . ".txt";
$fh = fopen($myFile, 'w') or die("cant_open_file");
$stringData = "Date: " . $date . "\n";
$stringData .= "Uploaded Files:\n";
$stringData .=  $file; // prints nothing?
fwrite($fh, $stringData);
fclose($fh);

ただし、何も$file印刷されていません。

質問

ユーザーから選択された各ファイルのファイル情報をテキスト ファイルに出力するにはどうすればよいですか?

望ましい出力

Date: Todays Date
Files: 2 file(s)
    File: someimage1.png
    Size: 10KB

    File: someimage1.png
    Size: 20KB

アップデート

$_FILES['files']送信時は何故か空白なのですが、前の例で「ファイル:」と「サイズ:」を出力すると空白のように見えて$file['name']しまいます。$file['size']また、3 つのファイルを選択すると、「ファイル/サイズ」が 5 回表示されます (5 つのファイルが選択されたことを示しています)。これは、選択したファイルの量に関係なく同じです。正しい値がphp.iniにもあることを確認しました。ここからどこへ行くべきかわからない。

foreach($files as $file){
    $stringData .=  "   File: ".$file['name']."\n"; // return blank
    $stringData .=  "   Size: ".$file['size']."\n"; // return blank
}

また、私はjQuery File Upload Demoを使用しています。

4

4 に答える 4

4

$files = $_FILES["files"];アップロードされたファイル情報を取得するために使用します。

POSTメソッドのアップロード

于 2012-09-06T06:49:25.233 に答える
1

$_FILES配列でループを使用できます。

foreach($files as $file){
    $stringData .=  "File: ".$file['name']."\n";
    $stringData .=  "Size: ".$file['size']."\n";
}

それらをフォルダーに保存するだけで失われるため、必ずmove_uploaded_file()を使用してください。/tmp

于 2012-09-06T06:50:26.283 に答える
1

使用する

$files = $_FILES['files'];

echo "<pre>";
print_r($files);

それ以外の

$files = $_POST["files"];
于 2012-09-06T06:50:42.680 に答える
1

$_FILESの代わりに次のように使用してみてください$_POST['files']

print_r($_FILES['ファイル'])

于 2012-09-06T06:51:01.383 に答える