最近做一个前后台分离的项目,要用到前端页面传递文件对象给后端,就研究了一下框架中自带的类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类使用详解相关推荐

  1. java上传下载_Java文件上传与文件下载实现方法详解

    本文实例讲述了Java文件上传与文件下载实现方法.分享给大家供大家参考,具体如下: Java文件上传 数据上传是客户端向服务器端上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传 ...

  2. 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩

    中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...

  3. upload-labs-master文件上传靶场第七关详解

    一.前言 upload-labs-master是文件上传靶场,里面目前总共有19关,github地址https://github.com/c0ny1/upload-labs,今天要说的是这个靶场的第七 ...

  4. 文件上传漏洞——upload-labs 1-19 (详解)

    upload-labs-1 删除 js 进行绕过 上传图片,发现上传成功 上传 shell 发现: 发现是白名单,所以由前面我们知道,极有可能在前端存在过滤,我们检查一下: 发现 checkFile( ...

  5. Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题

    Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题 ASP.NET 文件上传估计大家都用得很熟悉,常用控件 ...

  6. 华为云OBS文件上传下载工具类

    Java-华为云OBS文件上传下载工具类 文章目录 Java-华为云OBS文件上传下载工具类 1.华为云obs文件上传下载 2.文件流转MultipartFile 3.File转换为Multipart ...

  7. JAVA 文件上传下载工具类

    JAVA 文件上传下载工具类 import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org. ...

  8. python代码图片头像_Flask 上传自定义头像的实例详解

    Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能 今天想到最基本的功能,自定义头像 那这样的功能,设计到2大基本功能块 1:如何进行 ...

  9. linux上连接ftp服务器,linux下lftp连接ftp服务器进行上传与下载的方法详解

    摘要 腾兴网为您分享:linux下lftp连接ftp服务器进行上传与下载的方法详解,中英翻译,中建在线,掌上看家,银行帮等软件知识,以及微信一键转发工具,小学英语冀教版,正是在下表情包,易问电信,万能 ...

最新文章

  1. 区块链教程Fabric1.0源代码分析scc(系统链码)
  2. 预训练新范式!为什么Prompt会更有效?
  3. python模拟购物车流程_用函数模拟简单的购物车(Python)
  4. Managing Configuration Data Programmatically in ASP.NET 2.0
  5. 平衡的阵容——洛谷——2880——RMQ
  6. php $act,PHP_php Undefined index和Undefined variable的解决方法,$act=$_POST['act']; 用以上代码总 - phpStudy...
  7. word未保存文件关闭之后,如何恢复
  8. (微信,支付宝)小程序头像上传选择裁剪区域
  9. 善用GOOGLE–从入门到精通
  10. 2023你冲不冲,冲冲冲冲~~
  11. 密码学 BugKu 这不是摩斯密码
  12. Auto.js 9版本 OCR 文字识别
  13. 第24集丨人生的智慧:做人之道“成色”比“斤两”更重要
  14. 2022-2028全球与中国品牌许可市场现状及未来发展趋势
  15. 文件管理系统FastDFS详解
  16. 嵌入式实时操作系统11——操作系统内核运行原理
  17. Django连接SQL Server数据库,亲测成功
  18. jenkins远程执行脚本不退出Exec in pty
  19. matlab画一维波动方程,一维波动方程的数值解
  20. AI教程之 Stable Diffusion在自己电脑上运行稳定的AI自动艺术创作

热门文章

  1. 嵌入式uboot移植之从uboot官方移植
  2. 中国股民的四大优良品质
  3. mysql数据库内连接、左连接、右连接的区别
  4. 克里金(Kriging)插值的原理与公式推导
  5. 内存分配器(Memory Allocator)
  6. C++从零开始区块链:P2P模块之UDP数据包分组排序
  7. 计算机操作基础知识2017,计算机基础知识试题及答案2017
  8. Java 多线程编程 实验题
  9. android中的各种缓存目录
  10. 基于Java毕业设计学生在线评教系统源码+系统+mysql+lw文档+部署软件