2

我有一个包含文件输入字段的表单。在这里,用户上传了一张图片。进行 Ajax 调用并验证图像。

如果图像有效,我们可以移动到下一页(页面重新加载后),那里有更多的字段要填写。用户填写表单后,我们需要提交整个表单以及在前一个屏幕上选择的图像。

我不确定如何在浏览器中处理文件输入。我可以在页面之间保留一些信息,例如文件路径等,方法是在页面重新加载时将其发送到服务器,并在第二页中使用路径创建隐藏文件字段。但这行得通吗?浏览器会有任何安全限制吗?究竟什么需要持久化到下一页?

4

2 回答 2

0

我不认为你能做到这一点。如果您可以预设文件值,那么您可以访问用户的文件。这是一个很大的安全问题。对此还有另一个讨论。

使用默认文本填充 FILE 字段

详细点,推荐

  1. 在下一页了解更多信息,不要通过显示文件名再次询问文件(使用临时上传的文件名,在服务器中)

  2. 逐步收集信息后您仍然可以提交整个表单,但不能提交文件字段。如果您希望文件与表单一起传递多个页面,请将服务器端文件名作为隐藏字段传递。

于 2013-02-14T04:43:20.833 回答
0

当用户选择图像并重定向到其他页面时,您可以上传图像,如果用户没有填写其他页面上的表格,则删除该图像。通过增加:

$(window).on("beforeunload", function() {
    $.ajax({ 
       // delete the images by AJAX request to the server
    });
});
于 2013-02-14T04:43:34.530 回答