博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA项目同时上传多个文件和多个内容
阅读量:6420 次
发布时间:2019-06-23

本文共 2886 字,大约阅读时间需要 9 分钟。

hot3.png

前段代码

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title            

指定文件夹名:

上传文件:

上传文件:

 

后台代码

import cloud.user.portal.utils.StringUtils;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.io.IOException;import java.util.Collection;import java.util.Map;/** * Created by Administrator on 2018/1/26. MultipartFile属于 * spring-web包里的东西,需要自己下载一个 */@RestController@RequestMapping("/shapeFile")public class ShapeFileController {    @RequestMapping(value="/upload",method = RequestMethod.POST)    @CrossOrigin    public Object getFile(HttpServletRequest request){    /**    下边这个是获取非文件的属性值方法    **/    String uploadDir= request.getParameter("uploadDir");        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;//        List
fileList = multipartRequest.getFiles("file"); Map
fileMap = multipartRequest.getFileMap(); if(fileMap == null || fileMap.size() == 0){ return addResultMapMsg(false,"请上传文件,注意文件的name属性为file"); } Collection
files = fileMap.values(); for(MultipartFile file:files){ /** 注意这里获取的个数,是根据前端form表单里有几个,type=file来决定的, 比如你虽然只点选了一个文件,上传,但这里实际上回有两个MultipartFile对 象,只不过其中一个MutipartFile的文件名会为空,这就是为什么下边会有个判断文件名 为空的步骤**/ String req= file.getOriginalFilename(); if(StringUtils.isBlank(req)){ continue; } File tempFile = getTmpFile(req); System.out.println(tempFile.getAbsolutePath()); if(!tempFile.exists()){ tempFile.getParentFile().mkdirs(); try { tempFile.createNewFile(); file.transferTo(tempFile); } catch (IOException e) { e.printStackTrace(); } } System.out.println(req); } return null; } /** 下边这个是好方法,希望各位能用起来,虽然是个小方法,但我其实真不舍得贴出来,是JAVA自带的方法 **/ public File getTmpFile(String fileName) { File tmpDir = FileUtils.getTempDirectory(); System.out.println("========"+tmpDir.getAbsolutePath()); String tmpFileName = (Math.random() * 10000 + "").replace(".", "")+"_"+fileName; return new File(tmpDir, tmpFileName); }}

这里需要注意的是:文件上传时,你只选了一个文件上传,但是因为你有两个type=file的标签,后台接收到的MultipartFile也会是两个,但是其中一个的文件名会是空而已,所以需要加一个判断。

转载于:https://my.oschina.net/u/2971326/blog/1633462

你可能感兴趣的文章
小程序模板嵌套以及相关遍历数据绑定
查看>>
Systemd入门教程:命令篇(转)
查看>>
spring事务学习(转账案例)(二)
查看>>
[官方教程] [ES4封装教程]1.使用 VMware Player 创建适合封装的虚拟机
查看>>
http协议与http代理
查看>>
【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例...
查看>>
Redis+Spring缓存实例
查看>>
Storm集群安装详解
查看>>
centos7.x搭建svn server
查看>>
原码编译安装openssh6.7p1
查看>>
easyui-datetimebox设置默认时分秒00:00:00
查看>>
蚂蚁分类信息系统5.8多城市UTF8开源优化版
查看>>
在django1.2+python2.7环境中使用send_mail发送邮件
查看>>
“Metro”,移动设备视觉语言的新新人类
查看>>
PHP源代码下载(本代码供初学者使用)
查看>>
Disruptor-NET和内存栅栏
查看>>
Windows平台ipod touch/iphone等共享笔记本无线上网设置大全
查看>>
播放加密DVD
查看>>
产品设计体会(3013)项目的“敏捷沟通”实践
查看>>
RHEL6.3基本网络配置(1)ifconfig命令
查看>>