[英]NullPointerException: null playframework 2.1.1 file upload
我只是玩游戏框架中的新手,我正尝试使用playframework 2.1.1编写上传文件的代码,但出现此异常[NullPointerException]:null
我的控制器中有以下代码,并使用此链接
package controllers;
//import com.ning.http.client.FilePart;
import play.mvc.Http.MultipartFormData;
import play.mvc.Http.MultipartFormData.FilePart;
import play.*;
import play.mvc.*;
import play.data.*;
import static play.data.Form.*;
import java.io.File;
import models.*;
import views.html.*;
public class Application extends Controller {
public static Result index() {
return ok(index.render("My App"));
}
public static Result upload(){
MultipartFormData body=request().body().asMultipartFormData();
MultipartFormData.FilePart picture=body.getFile("picture");//Error is here
if(picture!=null){
//String fileName=picture.getFileName(); and if I uncomment this line it also show an error for 'value not find 'getFileName' ' is there any import is needed?
String contentType=picture.getContentType();
File file=picture.getFile();
return ok("File Uploaded");
}
else
{
flash("error", "Missing File");
return redirect(routes.Application.index());
}
//File file = request().body().asRaw().asFile();
//return ok("File uploaded");
}
}
并在View中的以下代码是app / views / upload.scala.html
@helper.form(action = routes.Application.upload, 'enctype -> "multipart/form-data") {
<input type="file" name="picture">
<p>
<input type="submit">
</p>
}
请给我一些建议,我错了。
提前致谢
您没有发布routes
文件,但是由于错误,我猜您正在将请求映射到GET
而不是POST
。
原因是在body
调用方法时会收到NullPointerException
。 body
是从request
对象的上一行初始化的,将内容检索为multipartFormData
。
您的表单片段正确地将表单声明为multipart/form-data
,并按预期映射到控制器的方法。 这意味着您不应该获取内容的唯一原因是该请求的正文为空,在这种情况下,该请求只能在GET
请求中。
当然,可能还有一个更奇特的原因,但是我敢打赌这就是原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.