我有一个包含文件输入字段的表单。在这里,用户上传了一张图片。进行 Ajax 调用并验证图像。
如果图像有效,我们可以移动到下一页(页面重新加载后),那里有更多的字段要填写。用户填写表单后,我们需要提交整个表单以及在前一个屏幕上选择的图像。
我不确定如何在浏览器中处理文件输入。我可以在页面之间保留一些信息,例如文件路径等,方法是在页面重新加载时将其发送到服务器,并在第二页中使用路径创建隐藏文件字段。但这行得通吗?浏览器会有任何安全限制吗?究竟什么需要持久化到下一页?
我有一个包含文件输入字段的表单。在这里,用户上传了一张图片。进行 Ajax 调用并验证图像。
如果图像有效,我们可以移动到下一页(页面重新加载后),那里有更多的字段要填写。用户填写表单后,我们需要提交整个表单以及在前一个屏幕上选择的图像。
我不确定如何在浏览器中处理文件输入。我可以在页面之间保留一些信息,例如文件路径等,方法是在页面重新加载时将其发送到服务器,并在第二页中使用路径创建隐藏文件字段。但这行得通吗?浏览器会有任何安全限制吗?究竟什么需要持久化到下一页?
我不认为你能做到这一点。如果您可以预设文件值,那么您可以访问用户的文件。这是一个很大的安全问题。对此还有另一个讨论。
详细点,推荐
在下一页了解更多信息,不要通过显示文件名再次询问文件(使用临时上传的文件名,在服务器中)
逐步收集信息后您仍然可以提交整个表单,但不能提交文件字段。如果您希望文件与表单一起传递多个页面,请将服务器端文件名作为隐藏字段传递。
当用户选择图像并重定向到其他页面时,您可以上传图像,如果用户没有填写其他页面上的表格,则删除该图像。通过增加:
$(window).on("beforeunload", function() {
$.ajax({
// delete the images by AJAX request to the server
});
});