Play框架文件上传Upload、FileUpload类使用详解
最近做一个前后台分离的项目,要用到前端页面传递文件对象给后端,就研究了一下框架中自带的类Upload接口、FileUpload类。
1. 后端的控制器能够接收到play.mvc.Http.Request对象,这个对象中有一个args参数,args参数内还内嵌一个__UPLOADS属性,我们可以通过这样的关系获取文件对象
private static Map<String, File> getRequestFileParam(Request request){Map<String, File> files = Maps.newHashMap();Map<String, Object> paramMap = request.args;if(!paramMap.isEmpty()) {List<Upload> uploads = (List<Upload>)paramMap.get("__UPLOADS");for(Upload upload : uploads) {if (upload instanceof FileUpload) {FileUpload mem = (FileUpload)upload;File file = upload.asFile();files.put(mem.getFieldName(), file);}}}return files;}
上面的示例通过play自带的功能获取前端传递过来的多个文件对象,我们可以通过自己的需求做不同的改造定制开发。
2. 使用play框架在控制器中接收文件对象的方法我们上面已经学习到了,下面就记录一下前端页面如何传递文件对象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="" id="formData" enctype="multipart/form-data"><input type="file" name="files" value="文件上传" id="file"><input type="file" name="files1" value="文件上传" id="file1"><input type="button" value="上传" id="upload"></form><script src="/js/jquery.js"></script><script type="text/javascript">$(document).on('click',"#upload", function(){// var fileObj = document.getElementById("file").files[0]; // js 获取文件对象var formData = new FormData($("#formData")[0]);
// console.log({'file':$('#file').get(0).files[0]});
// var ff = {'file':$('#file').get(0).files[0]};
// var ff1 = {'file1':$('#file1').get(0).files[0]};
// formData.append("files", ff)
// formData.append("file1", ff1)$.ajax({url : '/api/ggmsg/msg/action/FileUploadAction',type : 'post',async: false, cache: false, contentType: false, processData: false,dataType : 'json',data:formData,success : function(data) {console.log(data)},error: function (data) {} }); });</script>
</body>
</html>
Play框架文件上传Upload、FileUpload类使用详解相关推荐
- java上传下载_Java文件上传与文件下载实现方法详解
本文实例讲述了Java文件上传与文件下载实现方法.分享给大家供大家参考,具体如下: Java文件上传 数据上传是客户端向服务器端上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传 ...
- 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩
中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...
- upload-labs-master文件上传靶场第七关详解
一.前言 upload-labs-master是文件上传靶场,里面目前总共有19关,github地址https://github.com/c0ny1/upload-labs,今天要说的是这个靶场的第七 ...
- 文件上传漏洞——upload-labs 1-19 (详解)
upload-labs-1 删除 js 进行绕过 上传图片,发现上传成功 上传 shell 发现: 发现是白名单,所以由前面我们知道,极有可能在前端存在过滤,我们检查一下: 发现 checkFile( ...
- Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题
Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题 ASP.NET 文件上传估计大家都用得很熟悉,常用控件 ...
- 华为云OBS文件上传下载工具类
Java-华为云OBS文件上传下载工具类 文章目录 Java-华为云OBS文件上传下载工具类 1.华为云obs文件上传下载 2.文件流转MultipartFile 3.File转换为Multipart ...
- JAVA 文件上传下载工具类
JAVA 文件上传下载工具类 import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org. ...
- python代码图片头像_Flask 上传自定义头像的实例详解
Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能 今天想到最基本的功能,自定义头像 那这样的功能,设计到2大基本功能块 1:如何进行 ...
- linux上连接ftp服务器,linux下lftp连接ftp服务器进行上传与下载的方法详解
摘要 腾兴网为您分享:linux下lftp连接ftp服务器进行上传与下载的方法详解,中英翻译,中建在线,掌上看家,银行帮等软件知识,以及微信一键转发工具,小学英语冀教版,正是在下表情包,易问电信,万能 ...
最新文章
- 区块链教程Fabric1.0源代码分析scc(系统链码)
- 预训练新范式!为什么Prompt会更有效?
- python模拟购物车流程_用函数模拟简单的购物车(Python)
- Managing Configuration Data Programmatically in ASP.NET 2.0
- 平衡的阵容——洛谷——2880——RMQ
- php $act,PHP_php Undefined index和Undefined variable的解决方法,$act=$_POST['act']; 用以上代码总 - phpStudy...
- word未保存文件关闭之后,如何恢复
- (微信,支付宝)小程序头像上传选择裁剪区域
- 善用GOOGLE–从入门到精通
- 2023你冲不冲,冲冲冲冲~~
- 密码学 BugKu 这不是摩斯密码
- Auto.js 9版本 OCR 文字识别
- 第24集丨人生的智慧:做人之道“成色”比“斤两”更重要
- 2022-2028全球与中国品牌许可市场现状及未来发展趋势
- 文件管理系统FastDFS详解
- 嵌入式实时操作系统11——操作系统内核运行原理
- Django连接SQL Server数据库,亲测成功
- jenkins远程执行脚本不退出Exec in pty
- matlab画一维波动方程,一维波动方程的数值解
- AI教程之 Stable Diffusion在自己电脑上运行稳定的AI自动艺术创作