将网页中的表格导入或者下载到本地,并保存为xls格式
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.XSSFWorkbook; class DownLoadXls{ //excle生成临时目录 private String templateDir = "d:/" //打包成一个方法了 public void exportUser(HttpServletResponse response){ List<User> userlist = userService.findAllUser(); //生成excel,并写入本地和请求的客户端 Workbook workbook = new XSSFWorkbook(); workbook.createSheet(); Sheet sheet0 = workbook.getSheetAt(0); Row headRow = sheet0.createRow(0); //设置单元格-username headRow.createCell(0, Cell.CELL_TYPE_STRING).setCellValue("姓名"); //设置单元格-password headRow.createCell(1, Cell.CELL_TYPE_STRING).setCellValue("密码"); //设置单元格-birthday headRow.createCell(2, Cell.CELL_TYPE_NUMERIC).setCellValue("生日"); for(int i = 0;i < userlist.size();i++){ User user = user.get(i); Row curRow = sheet0.createRow(i+1); curRow.createCell(0,Cell.CELL_TYPE_STRING).setCellValue(user.getUserName()); curRow.createCell(1,Cell.CELL_TYPE_STRING).setCellValue(user.getPassWord()); ZoneId zoneId = ZoneId.systemDefault(); Instant instant = user.getBirthday().atZone(zoneId).toInstant(); String birthdayTime = DatwTimeUtil.datetimeToStringHH(Date.from(instant)); curRow.createCell(2,Cell.CELL_TYPE_NUMERIC).setCellValue(birthdayTime); } BufferedOutputStream out = null; try{ response.reset(); response.setCharacterEncoding("utf-8"); //Content-disposition告诉浏览器以下载的形式打开 //URLEncoder.encode("user.xlsx",StandardCharsets.UTF_8.name()); response.setHeader("Content-disposition","attachment;filename="+getExportFileName()); //application/ms-excel;charset=utf-8 告诉浏览器下载的文件是excel response.setContentType("application/ms-excel"); workbook.write(out); out.flush(); }catch(IOException e){ e.printStackTrace(); }finally{ try{ out.close(); }catch(IOException e){ } } } }
上传图片,存在数据库中的是图片路径,可以不使用ajax请求,参考:https://www.cnblogs.com/yvanBk/p/8953885.html
@GET
@POST
@Path("/uploadPicture")
@Produces("application/json;charset=UTF-8")
@Consumes("multipart/form-data")
public String uploadPicture(@Context HttpServletRequest request, @Context HttpServletResponse response){
JSONObject resultJson = new JSONObject();
String imgName=null;//给图片定义名称
String imgPath = null;//给图片指定的上传路径
String strusercode=null;
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
try{
//创建服务器路径存储图片
imgPath=THESERVERURL+"broadcast\";
//创建文件夹
File file = new File(imgPath);
if (!file.exists()){// 创建文件夹
file.mkdirs();
}else{
//删除文件中的所有图片
String name[]=file.list();
for (int i=0; i<name.length; i++){
File f=new File(imgPath,name[i]);//此时就可得到文件夹中的文件
f.delete();//删除文件
}
}
DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置工厂
factory.setRepository(new File(imgPath)); // 设置文件存储位置
factory.setSizeThreshold(1024 * 1024); // 设置大小,如果文件小于设置大小的话,放入内存中,如果大于的话则放入磁盘中,单位是byte
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8"); // 这里就是中文文件名处理的代码,其实只有一行
List<FileItem> listform = upload.parseRequest(request);
if (listform != null && !listform.isEmpty()){
int sort=0;
for (FileItem fileItem : listform){
sort++;
Map<String,Object> map =new HashMap<String,Object>();
// 判断表单数据是否为普通字段 不是则为图片字段
if (fileItem.isFormField()){
String fieldName = fileItem.getFieldName();// 获取表单字段名称
String value = fileItem.getString("utf-8");// 获取表单字段值
strusercode=value;//获取用户编码
}else{
// 上传图片的保存
String value = fileItem.getName();//值
//String fieldName = fileItem.getFieldName();// 获取表单字段名称
if(value!=null && !"".equals(value)){
// 保存的图片名称 currentTimeMillis时间搓
imgName = System.currentTimeMillis()+ fileItem.getName().substring(fileItem.getName().lastIndexOf("."));
// 保存(写)
fileItem.write(new File(imgPath, imgName));
map.put("broadcastUrl", "broadcast/" + imgName);//图片路径
map.put("booleans", "1");//是否显示图片
map.put("sort", sort);//图片路径
map.put("dtnoticetime", PublicTools.gettime());//上传时间
list.add(map);
}
}
}
//删除表里面的图片记录
userDaoImpl.delete("delete from t_broadcast");
//往表里插入数据
userDaoImpl.insertinto(BroadcastSql.insertSql(list, strusercode));
}else{
return this.returnError(resultJson,ResMessage.Server_Abnormal.code,request);
}
} catch (Exception e){
logger.info("登录信息异常",e);
return this.returnError(resultJson,ResMessage.Server_Abnormal.code,request);
}
return this.response(resultJson, request);
}
上传视频,参考:https://blog.csdn.net/qq791007/article/details/73332136
@ResponseBody @RequestMapping("upload") public Map upload(HttpServletRequest request,
@RequestParam(value = "myFile", required = false) MultipartFile[] files) { Map map =new HashMap(); try { for(int i=0;i<files.length;i++){ FileUploadUtils.upload(request, files[i]); } map.put("code","1"); map.put("msg","上传成功!"); } catch (Exception e) { map.put("code","0"); map.put("msg","上传失败!"); e.printStackTrace(); } return map; }
public class FileUploadUtils { //默认大小 50M public static final long DEFAULT_MAX_SIZE = 52428800; //默认上传的地址 public static String defaultBaseDir = "upload"; public static final String upload(HttpServletRequest request, MultipartFile file)throws Exception{ String filename = extractFilename(file, defaultBaseDir); File desc = getAbsoluteFile(extractUploadDir(request), filename); file.transferTo(desc); return filename; } private static final File getAbsoluteFile(String uploadDir, String filename) throws IOException { if(uploadDir.endsWith("/")) { uploadDir = uploadDir.substring(0, uploadDir.length() - 1); } if(filename.startsWith("/")) { filename = filename.substring(0, uploadDir.length() - 1); } System.out.println(uploadDir + "/" + filename); File desc = new File(uploadDir + "/" + filename); if(!desc.getParentFile().exists()) { desc.getParentFile().mkdirs(); } if(!desc.exists()) { desc.createNewFile(); } return desc; } public static final String extractFilename(MultipartFile file, String baseDir) throws UnsupportedEncodingException { String filename = file.getOriginalFilename(); int slashIndex = filename.indexOf("/"); if (slashIndex >= 0) { filename = filename.substring(slashIndex + 1); } filename = baseDir + "/" + filename; return filename; } public static final String extractUploadDir(HttpServletRequest request) { return request.getServletContext().getRealPath("/"); } }
下载视频
@ResponseBody @RequestMapping("getMp4") public void getMp4(String cateogry, HttpServletRequest request, HttpServletResponse response) throws IOException { if(StringUtils.isEmpty(cateogry)) { cateogry = ""; } String os = System.getProperty("os.name"); String path=""; if(os.toLowerCase().startsWith("win")){ path="D:/"; }else{ path="/home/work/"; } String fileName = path+cateogry; File file = new File(fileName); //判断文件是否存在如果不存在就返回默认图标 if(!(file.exists() && file.canRead())) { file = new File(path+"company/root.png"); } FileInputStream inputStream = new FileInputStream(file); byte[] data = new byte[(int)file.length()]; int length = inputStream.read(data); inputStream.close(); response.setContentType("video/mpeg4");// 设定输出的类型 response.setHeader("Content-Disposition", "attachment;filename=" + fileName); OutputStream stream = response.getOutputStream(); stream.write(data); stream.flush(); stream.close(); }