html – 在用户填写表单时上传文件

我正在创建一个表单,用户可以在其中发布包含照片的广告.在访问此表单之前,用户无需登录/注册.我需要在用户填写表单时异步上传照片. (例如,gumtree.com.au允许您在制作新广告时上传照片)

我知道我们可以在用户选择文件后立即开始上传文件.但是,在服务器端,如何在用户提交表单时识别这些文件?如果用户放弃未填写的表单,如何处理上传的文件?

什么是典型的设计模式来正确实现这一目标?

最佳答案 这是一种方法

第1部分

当用户访问您的站点时,它会联系服务器并发送随机生成的10个字母数字字符,例如(Xf4ht5Y4u9).这是用户标识符代码

可以通过客户端的一些javascript和ajax轻松实现

在服务器端,您可以使用PHP创建一个以用户标识符代码命名的临时目录

第2部分

用户上载文件并将它们异步发送到此临时文件夹

第3部分

用户填写form = true —执行操作,例如处理表单和图像,从temp文件夹中移动它们.临时文件夹现在为空.如果你想要这个功能,它可以用于下一批上传.您可以等待上传成功回调,以防文件仍在上传

用户填写form = false —上传的文件保留在临时文件夹中,因为它们尚未处理.

第4部分

服务器端房屋保持.如果从当前日期开始超过x天数,则每天检查一次临时文件夹,并删除它们以节省空间.可以在任何平台上使用shell脚本完成

如果您担心未处理的文件在服务器上闲置多长时间,请更改上述逻辑.例如,每小时运行房屋并检查临时文件夹的年龄是否>超过6小时或其他什么

在不太可能的情况下,用户现在上传文件,并在6小时内填写表格,然后在服务器端,您可以向客户报告,说明文件已被删除,他们需要再次上传.但这一切都取决于空间是否有问题.

您可以在5小时后自动打开一个弹出窗口,说明上传的文件很快就会被删除,因为它们还没有填写表格.

点赞