我是拉拉维尔新手。我有一个表单寄存器,包含字段是头像,有些字段需要验证。我从计算机上传图片,但是当我提交表单时,如果某些字段未通过验证,则图片文件丢失。如何保留上传的旧照片?对于文本字段,我可以使用 old() 函数来获取旧值,但对于输入文件,我不知道当表单未通过验证时如何保留值。
(有一些建议:当输入文件更改时使用ajax将值放入会话...)
抱歉我的英语水平不好,谢谢。
不可以,Laravel 或任何软件都无法预先填充文件输入。您的网站(以及任何网站)不知道也不应该知道该文件的本地路径。想象一下如果他们这样做的话会带来什么安全风险!您可以诱骗用户上传他们的 SSH 私钥或其他东西。
您需要做的是无论如何处理上传的文件,即使存在验证错误。
然后,您可以将其以待处理状态存储在数据库中,或者为其分配一些唯一的哈希值,并将匹配的哈希值存储在用户的会话中。关键是能够识别属于该特定用户的不完整上传。
然后,当您显示表单时,从会话或数据库中检索那些不完整的文件,并在文件上传旁边显示缩略图。这告诉用户他们不需要重新上传该文件。只要确保他们也有办法删除它,以防他们改变主意。
一旦表单正确提交,然后清除会话哈希或更新数据库状态即可完成;无论你需要做什么。
Andrewtweber 回答得很好所以我粘贴在这里。归功于他参考: Laravel 5.1:将上传的文件保留为旧输入
| 归档时间: |
|
| 查看次数: |
10113 次 |
| 最近记录: |