gpt4 book ai didi

java - NullPointerException : null playframework 2. 1.1 文件上传

转载 作者:行者123 更新时间:2023-11-30 04:19:28 24 4
gpt4 key购买 nike

我只是游戏框架的新手,我正在尝试使用 playframework 2.1.1 编写上传文件代码,但我收到此异常 [NullPointerException]: null
我在我的 Controller 中有以下代码并使用 this link

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 中的方法时,您会收到 NullPointerExceptionbody 在上一行中从 request 对象初始化,以 multipartFormData 形式检索内容。

您的表单片段正确地将表单声明为 multipart/form-data 并按预期映射到 Controller 的方法。这意味着您不应获取内容的唯一原因是请求正文为空,在这种情况下,该正文仅出现在 GET 请求中。

当然,可能还有更奇特的原因,但我敢打赌就是这个。

关于java - NullPointerException : null playframework 2. 1.1 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17463241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com