Java 多图像上传(播放框架)
我试图允许用户上传多个图像,但当我用一些文件验证表单时,我在图像字段中得到了错误值。。。 这是我的密码: 他认为:Java 多图像上传(播放框架),java,web-applications,file-upload,playframework,Java,Web Applications,File Upload,Playframework,我试图允许用户上传多个图像,但当我用一些文件验证表单时,我在图像字段中得到了错误值。。。 这是我的密码: 他认为: #{form @save(id)} #{ifErrors} <p class="error"> Please correct these errors. </p> #{/ifErrors} <p> <label>Titre</l
#{form @save(id)}
#{ifErrors}
<p class="error">
Please correct these errors.
</p>
#{/ifErrors}
<p>
<label>Titre</label>
<input type="text" name="title" value="${flash.title}" id="title" />
<span class="error">#{error 'title' /}
</p>
<p>
<label>Description</label>
<textarea name="detail" value="${flash.detail}" id="detail" /></textarea>
<span class="error">#{error 'detail' /}
</p>
<p>
<label>Photos</label>
<input type="file" draggable="true" name="files" id="files" multiple="multiple"/>
<strong>(Max. 5 photos)</strong> <span class="error">#{error 'files' /}
</p>
<p>
<input type="submit" value="Publier l'annonce" />
</p>
#{/form}
你在DnD文件上传中使用了HTML5字段,不是吗?我不知道JS提供了什么样的功能,但通常当你删除一个文件时,它会自动上传它。我建议你可以模仿YouTube的上传功能。例如: 上传文件后,返回一个带有文件生成ID的json,以便保存记录时可以将其与刚刚上传的文件关联起来 当我使用它时,javascript通常会打开一个新的POST请求,该请求必须从
request.body
获取,这是一个InputStream
,使用该InputStream和IOUtils保存文件,保存后返回一个带有文件名或文件路径的JSON对象
问题是,我不认为它永远不会通过文件[]
,因为javascript会打开一个新的POST请求,所以它总是返回不正确的值,因为当您将数据提交到服务器端时,它从未填充
您可以尝试这样做:创建两个路由,一个用于上传文件,一个用于保存文件的元数据,使用一种方法执行所有文件处理,另一种方法获取json返回并将其关联,然后保存:)
我还在这里发布了一些类似问题的示例代码:
干杯,抱歉,如果我听起来有点多余,有点累,但我希望这能帮助你:)文件上传需要强制为“多部分/表单数据”,以便在播放框架中处理文件。否则,文件数组将为空 调整您的表单,如下所示:
#{form @save(id), enctype:'multipart/form-data'}
你用的是什么版本的剧本?我相信在早期版本的Play中,多个文件上传存在一些问题。这是正确的代码吗?我看不出有什么不对劲。您没有验证files参数(至少在您共享的代码中),因此我看不出此验证错误来自何处。现在您可以通过验证测试看到缺少的部分
#{form @save(id), enctype:'multipart/form-data'}