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;
}
}