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");
}



猜你喜欢

转载自blog.csdn.net/penkee/article/details/8751037
今日推荐