SpringMVC文件上传与删除

14 篇文章 0 订阅
//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";
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值