package com.jy.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sf.json.JSONArray;
import org.springframework.stereotype.Controller;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.jy.common.ExportExcel;
import com.jy.common.FileCommon;
import com.jy.common.SessionInfo;
import com.jy.dao.Json;
import com.jy.excel.bean.BugTest;
import com.jy.model.Bug;
import com.jy.model.Bug_level;
import com.jy.model.Jy_Bug_files;
import com.jy.model.Project;
import com.jy.model.ProjectFile;
import com.jy.model.Test;
import com.jy.model.User;
import com.jy.service.BugService;
/**
* zhaokejin@outlook.com
*
* @author zkj
*
*/
@Controller
@RequestMapping(value = "/bug.do")
public class BugListController {
//文件下载
@RequestMapping(params = "method=downloadfile")
public String downloadfile(String file_url,String storeName,HttpServletResponse response,HttpServletRequest request){
System.out.println(file_url);
try {
request.setCharacterEncoding("UTF-8");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
File file=new File(file_url);
if(file.exists()){
long fileLength = new File(file_url).length();
if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
storeName = URLEncoder.encode(storeName, "UTF-8");
} else {
storeName = new String(storeName.getBytes("UTF-8"), "ISO8859-1");
}
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment; filename="
+ storeName);
//设置输出长度
response.setHeader("Content-Length", String.valueOf(fileLength));
//获取输入流
bis = new BufferedInputStream(new FileInputStream(file_url));
//输出流
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
//关闭流
bis.close();
bos.close();
}else{
request.setAttribute("downloaderror", "1");
return "bug/editbuglist";
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@RequestMapping(params = "method=uploadFile")
public String upload(HttpServletResponse response,
HttpServletRequest request, int bug_id, HttpSession session)
throws IOException {
System.out.println(bug_id+"========================");
User user = (User) session.getAttribute(SessionInfo.SessionName);
String responseStr = "";
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
// 文件保存路径 ctxPath本地路径
String ctxPath = request.getSession().getServletContext()
.getRealPath("/")
+ "uploadFiles";
System.out.println(ctxPath);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
String ymd = sdf.format(new Date());
ctxPath += File.separator + ymd + File.separator;
System.out.println("ctxpath=" + ctxPath);
// 创建文件夹
File file = new File(ctxPath);
if (!file.exists()) {
file.mkdirs();
}
// String fileName = null;
Jy_Bug_files jy_Bug_files = null;
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// // 上传文件
MultipartFile mf = entity.getValue();
// fileName = mf.getOriginalFilename();//获取原文件名
// System.out.println("filename="+fileName);
// File uploadFile = new File(ctxPath + fileName);
// try {
// for(int i = 0;i<file.length;i++){
// MultipartFile my = file[i];
String filename = mf.getOriginalFilename();
System.out.println("filename=" + filename);
if (filename != null && !"".equals(filename)) {
String prefix = filename.substring(filename.lastIndexOf("."));
try {
File newfile = file
.createTempFile("bugFiles", prefix, file);
mf.transferTo(newfile);
jy_Bug_files = new Jy_Bug_files();
// 放入数据库
// jy_Bug_files.setBug_file_name(mf.getOriginalFilename());
// jy_Bug_files.setBug_file_size(FileCommon.FormetFileSize(mf
// .getSize()));
// jy_Bug_files.setBug_file_person(user.getUsername());
// jy_Bug_files.setBug_file_url(newfile.getAbsolutePath());
// jy_Bug_files.setBug_id(bug_id);
// bugService.uploadfile(jy_Bug_files);
// FileCopyUtils.copy(mf.getBytes(), uploadFile);
responseStr = "上传成功";
} catch (IOException e) {
responseStr = "上传失败";
e.printStackTrace();
}
}
response.setHeader("Content-type", "text/html;charset=UTF-8");
// servlet用UTF-8转码,而不是用默认的ISO8859
response.setCharacterEncoding("UTF-8");
response.getWriter().write(responseStr);
}
return null;
}
}