使用cos组建上传文件
需要的文件:cos_2008.jar或者更高版本
1、如果是需要将文件上传到服务器的磁盘上进行保存的操作方法:
int fileSize = 10;//文件最大允许10M String savePath = "xxx";//文件的保存目录 MultipartRequest multiRequest = new MultipartRequest(request, savePath, fileSize * 1024 * 1024, "GBK", new UUIDFileRenamePolicy());//这里使用了文件进行判断,如果存在相同的文件名则使用uuid生成一个随机文件名 File mappingFile = multiRequest.getFile("myfile");//myfile:前台file上传组建的name //如果存在这个名称的文件新旧文件名的名字就不相同 String newFileName = mappingFile.getName(); String oldFileName = multiRequest.getFilesystemName("myfile"); System.out.println("上传的原始文件名:" + oldFileName + ",新文件名:"+ newFileName);
2、如果只是需要读取上传的文件而不需要保存到磁盘:
int fileSize = 10; try { MultipartParser mp = new MultipartParser(request,fileSize * 1024 * 1024); Part part; //遍历请求中的所有表单(因为只有一个文件,所以不需要while循环) if((part=mp.readNextPart())!=null){ //if(part.isParam()) //普通参数 if(part.isFile()){//是文件 FilePart fp = (FilePart)part; String fileName = fp.getFileName(); if (fileName.endsWith("csv") || fileName.endsWith("CSV")) { InputStream is = fp.getInputStream(); List uploadData = this.xxService .readCsvFile(is); if (null == uploadData || uploadData.size() == 0) { msg = "上传失败,该csv文件里没有数据!"; isOk = false; } else { List dataList = this.xxService .getStoreListWithInCsv(uploadData); request.getSession().setAttribute("uploadStoreList", dataList); } }else { msg = "上传失败,文件格式错误!请选择csv格式的文档!"; isOk = false; } }else{ msg = "上传失败,请选择需要上传的文件再操作!"; isOk = false; } }else{ msg = "上传失败,请选择需要上传的文件再操作!"; isOk = false; } } catch (Exception e) { msg = "上传失败,系统异常,请检查文件大小是否超过" + fileSize + "M!"; isOk = false; log.error(e.getMessage(), e); }