我如何获得服务器端的所有文件
我正在使用jquery的uploadify插件并将多个文件设置为true。我如何在服务器端检索这些文件?我如何获得服务器端的所有文件
我们需要在文件数组$_FILES['fileInputName']
中指定文件输入名称。但我只有一个文件输入呈现在提交多个文件的表单上。我如何检索它们?
感谢提前:)
Uploadify为每个上传的文件单独调用上传脚本。
据我所知,没有办法告诉PHP上传脚本里面的当前上传是否是队列中的最后一个。
您需要在客户端使用onComplete
和onAllComplete
回调。在onComplete
内部,您可以将每个成功上载添加到数组。在onAllComplete
中,您可以发出一个Ajax请求,将上传的文件列表发送到PHP脚本。
不错。正是我需要的。 – TCM 2010-09-10 14:30:41
你将不得不单独分配uid到上传文件,并且还将序列化的表格副本发送到支持的端点,以计算将要发送的文件数量,然后在每个在PHP端完成的文件之后添加一个会话变量,然后用另一个javascript心跳来检查backedend ..有可能你只需要让想象力和患者能够正确地使用它。安全性也是一个很重要的因素 – RobertPitt 2010-09-10 14:33:15
PHP:
foreach ($_FILE as $key => $value) {
echo "_FILE : $key; Valor: $value<br />\n";
}
但如果jQuery插件逐个发送文件,你应该将数据文件保存在用户会话。
if (!isset($_SESSION['FILES_UPLOAD']))
$_SESSION['FILES_UPLOAD'] = array();
foreach ($_FILE as $key => $value) {
$_SESSION['FILES_UPLOAD'][$key] =$value;
}
无法使用Uploadify工作的具体方式。 – 2010-09-10 14:28:08
重新更新:在会话中存储文件是一个聪明的想法。然而,它有两个缺点:1.你永远无法知道它是否是队列中的最后一个文件;和2.如果同一用户在不同的窗口中运行多个上传,您将遇到混淆。你必须发送一个唯一的密钥来解决后者 - 在做之前,我真的认为你最好使用Uploadify的回调函数。 – 2010-09-10 14:34:37
Pecka,在用户点击开始之前开始上传之前,您需要序列化表单并将其发送到后端,现在我们知道预期哪些文件将会到来,因为每个文件都会进入,您将从会话中删除,直到您下降到你的最终文件,请阅读我上面的评论。 – RobertPitt 2010-09-10 14:37:06
它们应该都在$ _FILES []数组中。你可以发布你的任何代码吗?那里可能有错字或其他一些错误。 – 2010-09-10 14:25:53