我如何获得服务器端的所有文件

问题描述:

我正在使用jquery的uploadify插件并将多个文件设置为true。我如何在服务器端检索这些文件?我如何获得服务器端的所有文件

我们需要在文件数组$_FILES['fileInputName']中指定文件输入名称。但我只有一个文件输入呈现在提交多个文件的表单上。我如何检索它们?

感谢提前:)

+0

它们应该都在$ _FILES []数组中。你可以发布你的任何代码吗?那里可能有错字或其他一些错误。 – 2010-09-10 14:25:53

Uploadify为每个上传的文件单独调用上传脚本。

据我所知,没有办法告诉PHP上传脚本里面的当前上传是否是队列中的最后一个。

您需要在客户端使用onCompleteonAllComplete回调。在onComplete内部,您可以将每个成功上载添加到数组。在onAllComplete中,您可以发出一个Ajax请求,将上传的文件列表发送到PHP脚本。

Uploadify docs

+0

不错。正是我需要的。 – TCM 2010-09-10 14:30:41

+0

你将不得不单独分配uid到上传文件,并且还将序列化的表格副本发送到支持的端点,以计算将要发送的文件数量,然后在每个在PHP端完成的文件之后添加一个会话变量,然后用另一个javascript心跳来检查backedend ..有可能你只需要让想象力和患者能够正确地使用它。安全性也是一个很重要的因素 – RobertPitt 2010-09-10 14:33:15

foreach

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; 
} 
+2

无法使用Uploadify工作的具体方式。 – 2010-09-10 14:28:08

+0

重新更新:在会话中存储文件是一个聪明的想法。然而,它有两个缺点:1.你永远无法知道它是否是队列中的最后一个文件;和2.如果同一用户在不同的窗口中运行多个上传,您将遇到混淆。你必须发送一个唯一的密钥来解决后者 - 在做之前,我真的认为你最好使用Uploadify的回调函数。 – 2010-09-10 14:34:37

+0

Pecka,在用户点击开始之前开始上传之前,您需要序列化表单并将其发送到后端,现在我们知道预期哪些文件将会到来,因为每个文件都会进入,您将从会话中删除,直到您下降到你的最终文件,请阅读我上面的评论。 – RobertPitt 2010-09-10 14:37:06