表单提交多个不保留数据的文件

时间:2010-08-02 18:04:27

标签: php html

好的,我有HTML表单,上传了10个文件。 6张图片和4张pdf。其中一些文件是其他文件所不需要的。

我的问题是,当我的脚本验证数据并向用户返回他/她有错误时,所有文件输入都返回为空白...如果用户重新提交...文件未保存

此表单还包含除文件之外的其他字段。

我尝试将$_POST放入输入值,但不会重新填充本地文件名。

我希望如此,如果他们犯了一个或几个错误,我的用户就不需要重新输入他们想要上传的所有文件。

编辑: 这是正常的帖子不给我文件名? 是否仍在服务器上保存为temp的文件?

3 个答案:

答案 0 :(得分:0)

确保为:

指定正确的设置
  • file_uploads
  • 的upload_max_filesize
  • memory_limit的
  • 的max_execution_time
  • 的post_max_size

请参阅:

同时确保:

  • 您已在enctype="multipart"
  • 中指定了form
  • 使用print_r($_FILES);
  • 检查文件数组

答案 1 :(得分:0)

不是将它们重定向回形式,而是使用一些JavaScript并使客户端浏览器返回一页。然后他应该提交以前选择的文件 你可以使用类似的东西:

<body onLoad="javascript:history.go(-1)">...</body>

答案 2 :(得分:0)

文件输入类型的value属性不存在,因为这是一个安全风险。您无法读取它或设置它的值(客户端或服务器端),因此即使您在用户的计算机上有本地路径,也无法填写它。

我会在提交表单之前尝试做某种客户端(甚至通过ajax)表单验证。如果他们确实提交了表单,那么文件将上传并且仍然应该在临时目录中(至少在垃圾收集开始之前)。也许在出错时将$ _FILES中的信息写入会话,而不是显示文件上传对话框,显示文件的图标,试图让他们知道你有文件,但他们需要修复表格以完成所有事情。然后,在他们提交更正后,您可以从会话中获取数据并尝试继续。