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'}