使用数组进行多文件上传

时间:2014-11-27 07:52:08

标签: javascript php

我有一个人们可以上传图片文件的网站。现在我想允许用户上传多个图像文件。我觉得让我的函数接受数组有点令人困惑。这就是我所拥有的:

它的UI部分:

<input type="file" id="imagefile" name="imagefile[]" multiple>

处理程序函数,用于记录到txt文件:

if(getPostPutField('imagefilename',$imagefilename))
$count=1;
foreach ($_FILES['imagefilename']['tmp_name'] as $file)
{
$imagefilename = urldecode($imagefilename);
$uploaded = handleUploadedImageFile($KBID, $_FILES['imagefile'], $imagefilename);
if ($uploaded)
{
$changesForEveryone[] .= "Image File Uploaded: " . $imagefilename."<br>";
$extraMsg .= "<br>Image File Uploaded: " . $imagefilename."<br>";
}
$count++;
}

真正上传文件的部分:

function handleUploadedImageFile($KBID,$file,$imagefilename=null)
{
$result = '';      
if(empty($imagefilename))
$imagefilename = $file['name'];
if($file['size'] > 0)
{
$dir = PROBLEMIMAGES."/".sprintf("%05d",$KBID)."/";
$result = getUploadedFile($file['tmp_name'],$dir,$imagefilename);
}
else
{
$result = false;
}
return $result;
}

我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您必须在单个请求中上传所有文件,则可以查看此答案here
但为了创造更好的用户体验,最好使用ajax逐个上传文件,看看"jQuery File Upload Demo"(你可以在php中找到服务器端代码)