我有一个多部分表单,我允许用户选择多个放在数组中的文件。这是我的代码的缩小部分:
<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。
答案 0 :(得分:4)
使用$files = $_FILES["files"];
获取上传的文件信息。
答案 1 :(得分:1)
您可以在$_FILES
数组中使用循环:
foreach($files as $file){
$stringData .= "File: ".$file['name']."\n";
$stringData .= "Size: ".$file['size']."\n";
}
请确保您使用move_uploaded_file(),因为您只将它们存储在/tmp
文件夹中,您将丢失它们。
答案 2 :(得分:1)
使用
$files = $_FILES['files'];
echo "<pre>";
print_r($files);
而不是
$files = $_POST["files"];
答案 3 :(得分:1)
请尝试使用$_FILES
,而不是$_POST['files']
:
print_r($ _ FILES ['files'])