springMVC上传文件
来源:互联网 发布:acfun. 的域名 编辑:程序博客网 时间:2024/04/29 06:57
1.jsp页面
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/upload/file" enctype="multipart/form-data" method="post">
上传用户:<input type="text" name="username"><br/>
上传文件1:<input type="file" name="attachs"><br/>
上传文件2:<input type="file" name="attachs"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
2.controller接收和保存文件
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
/**
* 文件上传控制器
* Created by Administrator on 2016-11-29.
*/
@Controller
@RequestMapping("/upload")
public class FileUploadController {
@RequestMapping(value = "file", method = RequestMethod.POST)
@ResponseBody
public String upload(HttpServletRequest request) throws IOException {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
String username = request.getParameter("username");
System.out.println(username);
//文件数组
List<MultipartFile> files = multipartRequest.getFiles("attachs");
//单个文件
// MultipartFile multipartFile = multipartRequest.getFile("attachs");
if(!files.isEmpty()){
for(MultipartFile file : files){
String path = setFilePath();
//获取上传文件的名字
String filename = file.getOriginalFilename();
//获取上传文件的类型 如:.png,.xml,.java等
filename = filename.substring(filename.lastIndexOf("."), filename.length());
//使用UUID获取新保存文件名称,防止重复
path = path + File.separator + UUID.randomUUID().toString() + filename;
FileOutputStream output = new FileOutputStream(new File(path));
byte[] bytes = file.getBytes();
output.write(bytes, 0, bytes.length);
output.close();
}
}
return "file upload success";
}
/**
* 设置上传文件保存路径
* @return
*/
private String setFilePath(){
String path=Thread.currentThread().getContextClassLoader().getResource("").toString();
path=path.replace('/', '\\'); // 将/换成\
path=path.replace("file:", ""); //去掉file:
path=path.replace("classes\\", ""); //去掉class\
path=path.replace("target\\", ""); //去掉class\
path=path.substring(1); //去掉第一个\,如 \D:\JavaWeb...
path+= "images";
File file = new File(path);
//目录或文件不存在就进行创建
if(!file.exists()){
file.mkdirs();
}
return path;
}
}
- springMVC(11) springMVC文件上传
- SpringMVC-----8、SpringMVC上传文件
- springmvc文件上传总结
- SpringMVC multipart文件上传
- SpringMVC中的文件上传
- springmvc的文件上传
- springMVC上传文件
- springMVC 文件上传
- SpringMVC - 文件上传篇
- springMVC文件上传
- springMVC文件上传
- springMVC文件上传
- SpringMVC 上传文件
- SpringMVC文件上传
- springMVC上传文件
- springMVC上传文件例子
- springMVC上传文件
- springmvc文件上传错误
- Android gradle: buildtoolsVersion vs compileSdkVersion
- OOAD&UML 笔记
- Hessian http
- 使用natapp本地映射外网服务访问
- LevelDB源码分析9-MemTable
- springMVC上传文件
- gradle脚本入门
- CentOS安装pillow报错的解决方法
- mongodb Cursor
- win10系统更新后开始菜单栏和工具栏打不开
- java利用poi包读写excel
- java服务too many open files
- iOS使用web端调用客户端APP(支付宝)
- 内存屏障与JVM并发