我尝试构建一个上载图像的表单,但是当使用csrf时,此功能对我有用,我正在阅读的表单enctype标记中需要此代码:
<form method="post" action="/?_csrf=<%=csrfToken%>">
这对我有用,但是如果只想保存一张图像,但是如果要编辑或删除,则不起作用,因为使用覆盖方法?_method = PUT并与我一起返回URl CSRF
http://localhost:3030/stories/5bafe7a5abe3a7110c5f386b?_csrf=wkhEeV2x-06M_KPnZRoSTPJ3mUZSnuZ6dl7s
Cannot POST
<form class="col s12" action="/stories/{{storieEdit.id}}?_csrf={{csrfToken}}" enctype="multipart/form-data" method="POST">
<input type="hidden" name="_method" value="PUT">
<div class="row">
<div class="file-field input-field col s12">
<div class="btn">
<span>File</span>
<input type="file" name="fileUpload" onchange="previewFile()">
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
<img src="/uploads/{{storieEdit.image}}" alt="Image" style="width: 25rem;">
</div>
</div>
</div>
</form>
任何建议
感谢阅读我
答案 0 :(得分:0)
对于多个图像,您需要像这样enctype="multipart/form-data"
对于方法重写,您需要将方法类型以及csrfToken添加到操作查询字符串:
action="/stories/{{storieEdit.id}}?_method=PUT&_csrf={{csrfToken}}"
我有类似的代码,并且工作正常。 在下面,您可以直接在代码中找到所需的更改。
<form class="col s12" enctype="multipart/form-data" action="/stories/{{storieEdit.id}}?_method=PUT&_csrf={{csrfToken}}" enctype="multipart/form-data" method="POST">
<input type="hidden" name="_method" value="PUT">
<div class="row">
<div class="file-field input-field col s12">
<div class="btn">
<span>File</span>
<input type="file" name="fileUpload" onchange="previewFile()">
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
<img src="/uploads/{{storieEdit.image}}" alt="Image" style="width: 25rem;">
</div>
</div>
</div>
</form>