我是新手拉拉维尔。 我有一个表单注册表,包含字段是头像,一些字段需要验证。 我从我的电脑上传图片,但是当我提交表格时,如果某些字段未通过验证,则图片文件丢失。 我如何保持旧图片上传? 使用文本字段,我可以使用old()函数来获取旧值但是使用输入文件我不知道如何在表单未通过验证时保持值。
(有一些建议:当输入文件改变时使用ajax put值到会话...)
对不起我的英语技能不好, 谢谢你。
答案 0 :(得分:0)
不,Laravel或任何软件都无法预先输入文件输入。您的网站(和任何网站)不会也不应该知道该文件的本地路径。如果他们这样做,想象一下安全隐患!您可以欺骗用户上传他们的SSH私钥或其他东西。
您需要做的是处理上传的文件,即使存在验证错误也是如此。
然后,您可以将其存储在具有挂起状态的数据库中,或者为其分配一些唯一的哈希值,并在用户的会话中存储匹配的哈希值。关键是能够识别属于该特定用户的不完整上传。
然后,当您显示表单时,从会话或数据库中检索这些不完整的文件,并在文件上载旁边显示缩略图。这告诉用户他们不需要重新上传该文件。只要确保他们有办法将其删除,以防他们改变主意。
正确提交表单后,清除会话哈希或更新数据库状态以完成;无论你需要做什么。
Andrewtweber回答得非常好所以我粘贴在这里。信用证告诉他 参考: Laravel 5.1: keep uploaded file as old input