您的位置:首页 > 编程语言 > Java开发

SpringMVC文件上传与删除

2017-07-22 19:45 113 查看
//controller
package com.kinth.charts.web.controller;

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.kinth.admin.server.rest.api.accessers.PictureAccesser;
import com.kinth.admin.web.controller.BaseController;
import com.kinth.base.rest.api.accesser.ResteasyWebResourceAccesserFactory;
import com.kinth.security.web.service.CurrentUser;
import com.mysql.fabric.Response;

import net.sf.json.JSONObject;

@Controller
@RequestMapping("/uploadPicture")
public class UploadController extends BaseController{

@Autowired
private ResteasyWebResourceAccesserFactory accesserFactory;

@RequestMapping(value="/add", method=RequestMethod.POST)
public String addPicture(@RequestParam MultipartFile[] myfiles, HttpServletRequest request) throws IOException{
PictureAccesser accesser=this.accesserFactory.createAccesser(PictureAccesser.class, CurrentUser.getAccessToken());
String response = accesser.addPicture(myfiles, request);
accesser.close();
return response;
}
@RequestMapping(value="/add", method=RequestMethod.GET)
public String addUser(){
return "picture/add";
}
@RequestMapping(value="/list",method=RequestMethod.GET)
public String list(){
File folder = new File("F://MyProject1//source//combat_chart//combat_chart-admin//src//main//webapp//static//js//u_editor//jsp//upload");
File[] files = folder.listFiles();
request.setAttribute("files", files);
return "picture/list";
}
@RequestMapping(value="/{fileName}/delete", method=RequestMethod.GET)
public String deletePicture(@PathVariable("fileName") String fileName) throws IOException{
PictureAccesser accesser=this.accesserFactory.createAccesser(PictureAccesser.class, CurrentUser.getAccessToken());
String response = accesser.deletePicture(fileName);
accesser.close();
return response;
}
@RequestMapping(value="/uploadimage", method=RequestMethod.POST)
public String config(){
return "controller";
}
@RequestMapping(value="/uploadimage", method=RequestMethod.GET)
public String configw(){
return "controller";
}
}


//Accesser
package com.kinth.admin.server.rest.api.accessers;

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.kinth.admin.server.rest.api.interfaces.PictureInterface;
import com.kinth.base.rest.api.accesser.ResteasyWebResourceAccesser;

public class PictureAccesser extends ResteasyWebResourceAccesser implements PictureInterface {
public PictureAccesser(String resourceRoot) {
super(resourceRoot);
// TODO Auto-generated constructor stub
}
@Override
public String addPicture(@RequestParam MultipartFile[] myfiles, HttpServletRequest request) throws IOException{
//如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解
//如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解
//并且上传多个文件时,前台表单中的所有<input type="file"/>的name都应该是myfiles,否则参数里的myfiles无法获取到所有上传的文件
for(MultipartFile myfile : myfiles){
if(myfile.isEmpty()){
System.out.println("文件未上传");
}else{
System.out.println("文件长度: " + myfile.getSize());
System.out.println("文件类型: " + myfile.getContentType());
System.out.println("文件名称: " + myfile.getName());
System.out.println("文件原名: " + myfile.getOriginalFilename());
System.out.println("========================================");
//String path="http://localhost:8082/admin/static/js/u_editor/jsp/upload/image";
String realPath = request.getSession().getServletContext().getRealPath("/static/js/u_editor/jsp/upload");
FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(realPath, myfile.getOriginalFilename()));
}
}
return "redirect:/uploadPicture/list";
}
@Override
public String deletePicture(String fileName) throws IOException {
File folder = new File("F://MyProject1//source//combat_chart//combat_chart-admin//src//main//webapp//static//js//u_editor//jsp//upload");
File[] files = folder.listFiles();
for(File file:files){
if(file.getName().equals(fileName)){
file.delete();
}
}
return "redirect:/uploadPicture/list";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息