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['files'])

于 2012-09-06T06:51:01.383 回答