播放2.0.4文件上传。 NullPointerException:null

时间:2013-01-05 15:38:57

标签: file-upload playframework-2.0

我正在使用Play in Java,我遇到处理文件上传的问题。

我在this页面上做了所有内容,但在提交表单时我得到NullPointerException

这是我的表格:

@form(action = routes.Application.upload, 'enctype -> "multipart/form-data") {
<input type="file" name="picture">
    <p>
       <input type="submit">
   </p>
}

路线:

POST    /upload         controllers.Application.upload()

这是我的控制器:

import play.mvc.Http.MultipartFormData;
import play.mvc.Http.MultipartFormData.FilePart;

public static Result upload() {
    MultipartFormData body = request().body().asMultipartFormData();
    FilePart picture = body.getFile("picture");  //here i got NullPointerException
    if (picture != null) {
        String fileName = picture.getFilename();
        String contentType = picture.getContentType(); 
        File file = picture.getFile();
        return ok("File uploaded");
    } else {
        flash("error", "Missing file");
        return redirect(routes.Application.index());    
    }
}

我尝试过在互联网上找到的几种解决方案,但它们都没有帮助我。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

请注意,此地点的NullExceptions适用于body,不适用于picture

唯一可能的原因是你发送的HTML表单没有enctype="multipart/form-data"(也许你没有在浏览器中刷新表单并且仍然试图发送普通表单?)

确保(在您的浏览器中),您填写表单的页面具有此表单声明,然后重试。

<form action="/upload" method="POST" enctype="multipart/form-data">

    <input type="file" name="picture">

    <p>
        <input type="submit">
    </p>

</form>