[英]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.