#处理文件上传
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 #### 概述 Play2.0是一个现代的Web应用框架,它基于Java和Scala语言构建,旨在提供简洁、快速且可扩展的应用开发体验。对于Java开发者而言,Play2.0提供了一套完整的Java API,...
用play.db.jpa.Blob存储上传文件 - 74 - 强制保存 - 75 - 更多公共类型generic typing问题 - 77 - 08.Play.libs库包 - 78 - 用XPath解析XML - 78 - Web Service client - 79 - Functional programming with Java功能...
例如,workflow拦截器处理业务流程,validation拦截器进行数据校验,而文件上传功能可以通过专门的拦截器实现。 3. **Action**:Action是业务逻辑控制器,它实现了用户的特定操作。当请求经过拦截器链后,会回调...
Struts2是一个强大的Java web应用程序框架,用于...尽管后来出现了更多如Spring MVC、Play Framework等替代方案,但Struts2仍然是Java web开发领域的重要组成部分,尤其对于理解MVC模式和实践企业级开发具有重要意义。
至于Silverlight 2.0和1.0的区别,2.0版本引入了更多功能,如更丰富的UI控件、数据绑定、模板化以及对.NET Framework的更全面支持。这意味着如果使用Silverlight 2.0,我们可以通过数据绑定简化UI与模型之间的交互,...