日期:2014-05-20 浏览次数:21041 次
#处理文件上传
?
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"); }?