spring下的文件上傳、下載與刪除

文件上傳:數據庫

文件上傳首先須要有一個文件保存路徑:服務器

            String picturePath = request.getSession().getServletContext().getRealPath("/") + File.separator + "uploadFiles" + File.separator + "complain" + File.separator;

隨後判斷文件夾目錄是否存在:編碼

File file = new File(picturePath);
if (!file.exists()) {
    file.mkdirs();
}

隨後經過前臺的<input type="file" name='file1'>的值獲取到文件file1,再能夠經過file1獲取到文件名字、文件類型、保存到服務器的文件名:spa

String pictureName = file1.getOriginalFilename();
String fileType = pictureName.substring(pictureName.lastIndexOf(".") + 1);
String filePath = System.currentTimeMillis() + "." + fileType;

而後就能夠把你的路徑+服務器中的文件名放到一個新建的File裏面,最後保存文件就好了:code

File uploadFile = new File(picturePath + filePath);
file1.transferTo(uploadFile);

而後你獲取的各類信息就能夠放到數據庫裏面了,這裏就不說了。orm

 

文件的刪除:blog

文件刪除很簡單,經過獲取文件的路徑+保存在服務的名字,最後delete一下就能把文件刪除了:get

File deleteFile = new File(picturePath + filename);
deleteFile.delete();

 

 

文件的下載:input

文件的下栽須要獲取文件的路徑以及文件在服務器的名稱,最後通過一系列的編碼問題來達到下載的問題:文件上傳

   String path = File.separator + "uploadFiles" + File.separator + "complain" + File.separator + (complainAccessory.getFileUrl());
        String name = complainAccessory.getFileName();
        String realPath = request.getSession().getServletContext().getRealPath(path);
        File file = new File(realPath);
        // boolean isok = file.exists();
        HttpHeaders headers = new HttpHeaders();
        String fileName = name;
        try {
            String userAgent = request.getHeader("User-Agent");

            if (StringUtils.contains(userAgent, "MSIE") || (StringUtils.contains(userAgent, "Mozilla") && StringUtils.contains(userAgent, "rv:11"))) {
                boolean flage = false;
                if (fileName.indexOf(" ") > -1) {
                    flage = true;
                }
                fileName = URLEncoder.encode(fileName, "UTF-8");
                if (flage) {
                    fileName = fileName.replace("+", " ");
                }


            } else if (StringUtils.contains(userAgent, "Mozilla")) {
                fileName = new String(fileName.getBytes(), "ISO8859-1");
            } else {
                fileName = URLEncoder.encode(fileName, "UTF-8");
            }

//            if("MSIE".equals(userAgent.toUpperCase())){
//                fileName = URLEncoder.encode(fileName, "UTF-8");
//            }else {
//                fileName = new String(name.getBytes("UTF-8"),"iso-8859-1");
//            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        headers.add("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
//        headers.setContentDispositionFormData("attachment", fileName);
//        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        byte[] bytes = null;
        try {
            bytes = FileUtils.readFileToByteArray(file);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new ResponseEntity<byte[]>(bytes, headers, HttpStatus.OK);
相關文章
相關標籤/搜索