普通文件上传
@RequestMapping(path="/testFileUpload1")
public String testFileUpload1(HttpServletRequest request) throws Exception {
String path = request.getSession().getServletContext().getRealPath("/uploads");
File file = new File(path);
if(!file.exists()) {
file.mkdirs();
}
//2:创建ServletFileUpload和磁盘文件项工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
// 3:解析request,遍历FileItem对象
List<FileItem> list = fileUpload.parseRequest(request);
// 遍历,获取到每一个文件项的对象
for (FileItem fileItem : list) {
// 判断,当前fileItem是否是文件项
if(fileItem.isFormField()) {
// 说明是普通的表单 ,文本框,下拉框等
}else {
// 文件上传项 fileItem
// 获取到文件的名称
String filename = fileItem.getName();
// 生成唯一标识
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
filename = uuid+"_"+filename;
// 4:上传文件,调用write()方法
fileItem.write(new File(file, filename));
// 删除临时文件
fileItem.delete();
}
}
return “success”;
springMVC文件上传
@RequestMapping("/testFileUpload2")
public String testFileUpload2(HttpServletRequest request,MultipartFile upload) throws Exception {
String path = request.getSession().getServletContext().getRealPath("/uploads");
// 创建file对象
File file = new File(path);
// 判断是否存在
if(!file.exists()) {
// 创建目录
file.mkdirs();
}
// 获取到文件的名称
String filename = upload.getOriginalFilename();
// 生成唯一标识
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
filename = uuid+"_"+filename;
// 使用upload对象中方法就直接上传文件
upload.transferTo(new File(file, filename));
return "success";}
spring跨域文件上传:
@RequestMapping("/testFileUpload3")
public String testFileUpload3(MultipartFile upload) throws Exception {
//指定上传服务器的文件路径
String path = "http://localhost:9090/springmvc_day02_fileuploadserver/uploads/";
// 获取到文件的名称
String filename = upload.getOriginalFilename();
// 生成唯一标识
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
filename = uuid+"_"+filename;
// 2:上传文件
// 创建客户端对象
Client client = Client.create();
filename = path+filename;
// 连接图片服务器
WebResource webResource = client.resource(filename);
// 把文件上传到图片服务器上
webResource.put(upload.getBytes());
return "success";}
web.xml配置
<!-- SpringMVC的核心控制器 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置Servlet的初始化参数,读取springmvc的配置文件,创建spring容器 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 配置servlet启动时加载对象 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--配置解决中文乱码过滤器-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>