所以我在表单和mysql数据库之间建立一个中间人脚本。
长话短说,有一个表单和一个表,这个脚本处理所有字段使用提交的表单数据更新表单各自的数据库表,如果有任何文件,则在创建时将文件上载到目标指向数据库中的指针。
我已经完成了这一部分,而且效果很好。但是,我意识到我的想法存在轻微问题。
当用户提交表单
时[first_name]
[last_name]
[email]
[file1]
[file2]
我首先加载表单数据,而不是成功上传文件。
但是,如果文件上传因任何原因失败,太大,错误类型,超时甚至是错误。我留下了表单数据,但没有相关文件。
我可以捕获文件上传错误,然后删除插入的表单数据记录,但如果错误是故意退出该怎么办。或用户错误,他们关闭标签/浏览器。
是否有办法同时执行这两种操作"将表单数据插入到db表"和"上传文件"但只有他们都有100%的成功?
如果有人可以简单地指出我正确的方向,那将有助于充足。
希望我有意义! 谢谢!
答案 0 :(得分:1)
使用单个表单上传参数和文件,或者在提交第1个表单后使用会话保存参数,而不是将数据直接保存到数据库。
然后尝试将文件保存到最终位置。如果失败,您可以让用户再试一次。如果成功,那么你有指向其位置的指针。
然后,您尝试将表单数据保存到数据库。如果失败,那么您也可以使用保存文件时获得的路径删除上传的文件。