jquery流上传获取文件以及请求参数
来源:互联网 发布:form表单提交到数据库 编辑:程序博客网 时间:2024/06/05 16:49
前言
javaEE开发中比较常用的form表单提交,因为表单提交的方式基本是json,这样在后台直接可以通过request.Pramater()获取,但是如果涉及到文件提交呢?一种常用的方式就是以流的方式提交,这样一来,后台是无法直接获取的,具体步骤如下。
前端
function submit(){ var formData = new FormData(); formData.append('file', $('#file')[0].files[0]); formData.append('description',$("#description").val()); $.ajax({ type: "POST", url:"file/upload", data:formData, contentType: false, processData: false, success: function(data) { data = JSON.parse(data); if(data.success){ alert("上传成功"); }else{ alert(data.codes); } } });}
后端
// 上传配置 private static final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MB private static final int MAX_FILE_SIZE = 1024 * 1024 * 50; // 50MB private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 100; // 100MB // 上传文件存储目录 private static final String UPLOAD_DIRECTORY = "fileDir"; // 配置上传参数 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置内存临界值 - 超过后将产生临时文件并存储于临时目录中 factory.setSizeThreshold(MEMORY_THRESHOLD); // 设置临时存储目录 factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(MAX_FILE_SIZE); upload.setSizeMax(MAX_REQUEST_SIZE); // 上传文件存储目录 String uploadPath = request.getServletContext().getRealPath("./") + UPLOAD_DIRECTORY; // 如果目录不存在则创建 File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } try { List<FileItem> formItems = upload.parseRequest(request); Map<String, Object> params = new HashMap<String, Object>(); if (formItems != null && formItems.size() > 0) { // 迭代表单数据 for (FileItem item : formItems) { if (item.isFormField()) { //请求参数 params.put(item.getFieldName(),item.getString()); }else { //文件 String fileName = new File(item.getName()).getName(); String filePath = uploadPath + File.separator + fileName; String fileSize = String.valueOf(item.getSize()); File storeFile = new File(filePath); //保存到服务器 item.write(storeFile); } } setParams(params); } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; }
后记
今天不想说什么了,有点累。
参考文章
http://blog.csdn.net/clementad/article/details/49717397
https://www.leiphone.com/news/201705/HeBxL297H3VU1nf2.html
http://www.ruanyifeng.com/blog/2012/08/file_upload.html
阅读全文
0 0
- jquery流上传获取文件以及请求参数
- HttpClient请求接口上传文件以及参数
- JavaScript 和 JQuery获取URL以及URL中的请求参数
- jQuery 获取URL请求参数
- Jquery获取请求Url参数方法
- 扩展jQuery方法,获取URL请求参数
- JQuery获取请求url的所有参数
- jQuery获取URL请求参数的方法
- 利用O’Reilly公司的cos实现文件上传前获取请求参数
- HttpClient发送http请求以及上传文件
- struts2——文件的下载以及在Action中获取请求参数的方式
- 使用jquery获取URL以及使用jquery获取URL参数
- jquery 实现页面参数传递,并获取相关请求参数
- spring mvc 上传文件获取其他参数
- HttpClient获取Accesstoken以及上传多媒体文件
- jQuery获取上传文件的名称
- jquery多文件上传,获取每个文件大小
- jquery中的ajax请求用法以及参数详情
- 51单片机的外部中断的学习(一)
- 微信小程序页面内转发 按钮 转发
- linux应用编程--pipe无名管道
- java中什么是上下文
- 如何在Elasticsearch中安装中文分词器(IK+pinyin)
- jquery流上传获取文件以及请求参数
- CMakeLists.txt----一点儿自己的经验教训
- docker——发布一个应用程序
- 【异常】--spring context:property-placeholder location= 找不到环境配置文件 maven(257)
- 21.Android系统广播大全
- HTTPS 单向认证、双向认证
- 关于mysql 批量更新开关在mycat中失效的问题
- 学习python之 random 模块
- Java集合之ArrayList(List的一个子类)