`

Play framework 2.0 -文件上传

 
阅读更多

#处理文件上传

 

1.在表单中用multipart/form-data上传文件。

 

在web应用中标准的文件上传方式是在表单中使用一个特殊的"multipart/form-data编码,它允许标准表单数据和文件附件混合使用:

例如:

@form(action = routes.Application.upload, 'enctype -> "multipart/form-data") {
	    
	    <input type="file" name="picture">
	    
	    <p>
		<input type="submit">
	    </p>
	    
	}
 

现在我们定义一个上传Action:

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();
	    return ok("File uploaded");
	  } else {
	    flash("error", "Missing file");
	    return redirect(routes.Application.index());    
	  }
	}
 

2.直接上传文件

 

另一种把文件发送懂服务器的方法是使用Ajax从表单异步上传文件。这种情况下,请求体不会被以"multipart/form-data"编码,而仅仅包含普通文件内容。

 

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

分享到:
评论

相关推荐

    play2.0 for java developers.pdf

    ### Play2.0 for Java Developers #### 概述 Play2.0是一个现代的Web应用框架,它基于Java和Scala语言构建,旨在提供简洁、快速且可扩展的应用开发体验。对于Java开发者而言,Play2.0提供了一套完整的Java API,...

    play框架手册

    用play.db.jpa.Blob存储上传文件 - 74 - 强制保存 - 75 - 更多公共类型generic typing问题 - 77 - 08.Play.libs库包 - 78 - 用XPath解析XML - 78 - Web Service client - 79 - Functional programming with Java功能...

    struts2.0第一讲

    例如,workflow拦截器处理业务流程,validation拦截器进行数据校验,而文件上传功能可以通过专门的拦截器实现。 3. **Action**:Action是业务逻辑控制器,它实现了用户的特定操作。当请求经过拦截器链后,会回调...

    Struts2介绍文档

    Struts2是一个强大的Java web应用程序框架,用于...尽管后来出现了更多如Spring MVC、Play Framework等替代方案,但Struts2仍然是Java web开发领域的重要组成部分,尤其对于理解MVC模式和实践企业级开发具有重要意义。

    Silverlight(2) - 1.0实例之支持录音和回放的钢琴(Silverlight+ASP.NET AJAX+DLINQ)

    至于Silverlight 2.0和1.0的区别,2.0版本引入了更多功能,如更丰富的UI控件、数据绑定、模板化以及对.NET Framework的更全面支持。这意味着如果使用Silverlight 2.0,我们可以通过数据绑定简化UI与模型之间的交互,...

Global site tag (gtag.js) - Google Analytics