play framework2開發(五)

文件上傳

在一個form中用multipart/form-data上傳文件

在一個web應用程序中,標準的上傳文件是用multipart/form-data編碼的form,它允許用文件附件形式混合表單數據。注意的是對於這樣的form的HTTP方法,必須是POST提交

1、打開routes文件,添加  POST     /upload                         controllers.UserControl.upload()

2、在UserControl.java中,加入

 public static Result upload(){
		 
		 MultipartFormData body=request().body().asMultipartFormData();
		 
		 FilePart picture=body.getFile("picture");
		 
		 if(picture!=null){
			 String filename=picture.getFilename();
			 String contentType=picture.getContentType();
			 File file=picture.getFile();
			 System.out.println("filename:"+filename+",contentType:"+contentType);
			 return ok("File load");
			 
		 }else{
			 flash("error","Miss file");
			 
			 return redirect(routes.Application.index()); 
		 }
	 }
3、打開form.scala.html,加入

 <form action="/upload" method="post" enctype="multipart/form-data">
   <input type="file" name="picture">
    
    <p>
        <input type="submit">
    </p>
    
   </form>


直接文件上傳

另一張方式上傳文件是用ajax,從一個form中異步上傳文件。這種情況下,請求的body不會被編碼成Multipart/form-data,只包含純文本文件內容。

public static Result upload() {
  File file = request().body().asRaw().asFile();
  return ok("File uploaded");
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章