天天看點

java ssm架構實作檔案上傳和下載下傳

package com.sldl.service.app;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.annotation.Resource;

import javax.imageio.ImageIO;

import javax.servlet.ServletContext;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.http.HttpHeaders;

import org.springframework.http.HttpStatus;

import org.springframework.http.ResponseEntity;

import org.springframework.stereotype.Service;

import org.springframework.transaction.annotation.Transactional;

import org.springframework.web.multipart.MultipartFile;

import com.sldl.dao.app.FileSaveDao;

import com.sldl.model.app.FileSave;

import com.sldl.model.jsp.User;

import com.sldl.utils.Configer;

import com.sldl.utils.UUIDUtil;

@Service

public class FileService {

@Resource

Configer config;

@Autowired

private UUIDUtil uuidUtil;

@Autowired

private Configer Config;

@Autowired

private FileSaveDao dao;

// fileSave.setTaskId(“116”);

dao.addFile(fileSave);

image.transferTo(newfile);

} catch (IllegalStateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

dataMap.put(“code”, 0);

dataMap.put(“msg”, “檔案儲存成功!”);

}else{

dataMap.put(“code”, 1);

dataMap.put(“msg”, “檔案為空!”);

}

return dataMap;

}

@Transactional

public Map deleteFile(FileSave fileSave) {

Map<String,Object> map=new HashMap<>();

if (fileSave.getTitle() != null && !fileSave.getTitle().equals("")) {// 隻有這個檔案是非空

/// 删除檔案

List fileByTaskId = dao.getFileByTaskId(fileSave);

for(int i=0;i<fileByTaskId.size();i++){

new File(fileByTaskId.get(i).getFilePath()).delete();// 删除檔案

dao.delById(fileByTaskId.get(i));//删除記錄

}

map.put(“code”, 0);

map.put(“msg”, “操作成功!”);

}else{

map.put(“code”, 1);

map.put(“msg”, “檔案為空!”);

}

return map;

}

public ResponseEntity<byte[]> fileDownLoad(FileSave fileSave) throws Exception{

List fileByTaskId = dao.getFileByTaskId(fileSave);

String fileName=fileByTaskId.get(0).getTitle();

// ServletContext servletContext = request.getServletContext();

//String fileName=“開發計劃安排V1.1.xlsx”;

// String realPath = servletContext.getRealPath("/WEB-INF/"+fileName);//得到檔案所在位置

//String realPath=“d:/wtts_file/3036414-760f0551f9b24978bfaddddc395c81a2.1.xlsx”;

String realPath=fileByTaskId.get(0).getFilePath();

InputStream in=new FileInputStream(new File(realPath));//将該檔案加入到輸入流之中

byte[] body=null;

body=new byte[in.available()];// 傳回下一次對此輸入流調用的方法可以不受阻塞地從此輸入流讀取(或跳過)的估計剩餘位元組數

in.read(body);//讀入到輸入流裡面

fileName=new String(fileName.getBytes(“gbk”),“iso8859-1”);//防止中文亂碼

HttpHeaders headers=new HttpHeaders();//設定響應頭

headers.add(“Content-Disposition”, “attachment;filename=”+fileName);

HttpStatus statusCode = HttpStatus.OK;//設定響應嗎

ResponseEntity<byte[]> response=new ResponseEntity<byte[]>(body, headers, statusCode);

return response;

}

public Map getFile(FileSave fileSave) {

Map<String,Object> map=new HashMap<>();

List fileByTaskId = dao.getFileByTaskId(fileSave);

map.put(“code”, 0);

map.put(“data”, fileByTaskId);

map.put(“msg”, “操作成功!”);

return map;

}

}

繼續閱讀