上传文件
Java 实体层
public class File {
private String serialNumber;
private String fileName;
private String filePath;
private String type;
private String foreignkey;
get set 就不写了
}
控制层
@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
@RequestMapping(value = "fileUpload", method = RequestMethod.POST, produces = "text/plain;charset=UTF-8")
public void fileUpload(File uploadFiles, String foreignkey,@RequestParam("fileData") CommonsMultipartFile file,HttpServletRequest request, HttpServletResponse response)throws Exception {
String prefix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
String realPath =Global.getUserfilesBaseDir()+ "\\存放地址\\" + foreignkey;
String fileName = java.util.UUID.randomUUID().toString() + prefix;
uploadFiles.setFilePath("\\存放地址\\" + foreignkey+ "\\" + fileName);
uploadFiles.setFileNamec(fileName);
uploadFiles.setForeignkey(foreignkey);
FileService.save(uploadFiles);
FileUtils.saveFile(file, realPath + "\\" + fileName);
}
工具类
public class FileUtils extends org.apache.commons.io.FileUtils {
public static void saveFile(MultipartFile file, String fileName)
throws IllegalStateException, IOException {
if (!file.isEmpty()) {
FileUtils.createDirectory(fileName);
file.transferTo(new File(fileName));
file = null;
}
}
public static boolean createDirectory(String descDirName) {
String descDirNames = descDirName;
if (!descDirNames.endsWith(File.separator)) {
descDirNames = descDirNames + File.separator;
}
File descDir = new File(descDirNames);
if (descDir.exists()) {
log.debug("目录 " + descDirNames + " 已存在!");
return false;
}
if (descDir.mkdirs()) {
log.debug("目录 " + descDirNames + " 创建成功!");
return true;
} else {
log.debug("目录 " + descDirNames + " 创建失败!");
return false;
}
}
}
判断文件是否存在
@ResponseBody
@RequestMapping(value = "getExists")
public AjaxJson getExists(HttpServletRequest request,
HttpServletResponse response, Model model) throws Exception {
AjaxJson json = new AjaxJson();
String fileName = request.getParameter("fileName");
String foreignkey= request.getParameter("foreignkey");
String filePath = Global.getUserfilesBaseDir() + "\\文件地址\\" + foreignkey+ "\\" + fileName;
File file = new File(filePath);
if(file.exists()){
json.setSuccess(true);
return json;
}else{
json.setSuccess(false);
json.setMsg("附件不存在");
return json;
}
}
文件下载
@RequestMapping(value = "downLoad")
public void downLoad(Model model, HttpServletRequest request,
HttpServletResponse response, String fileName) {
String filePath = Global.getUserfilesBaseDir() + "\\文件地址\\" + fileName;
response.reset();
response.resetBuffer();
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="+fileName);
ServletOutputStream out;
File file = new File(filePath);
try {
FileInputStream inputStream = new FileInputStream(file);
out = response.getOutputStream();
int b = 0;
byte[] buffer = new byte[inputStream.available()];
while ((b = inputStream.read(buffer)) != -1) {
out.write(buffer, 0, b);
}
inputStream.close();
out.close();
out.flush();
out = null;
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
}
查看文件
@RequestMapping(value = "lookFile")
public void lookFile(Model model, HttpServletRequest request,
HttpServletResponse response) {
String realPath = Global.getUserfilesBaseDir() + "\\文件地址\\";
String fileName = request.getParameter("fileName");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="
+ fileName);
ServletOutputStream out;
File file = new File(realPath + fileName);
try {
FileInputStream inputStream = new FileInputStream(file);
out = response.getOutputStream();
int b = 0;
byte[] buffer = new byte[inputStream.available()];
while ((b = inputStream.read(buffer)) != -1) {
out.write(buffer, 0, b);
}
inputStream.close();
out.close();
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
删除文件
public static boolean deleteFile(String fileName) {
File file = new File(fileName);
if (file.exists() && file.isFile()) {
if (file.delete()) {
log.debug("删除文件 " + fileName + " 成功!");
return true;
} else {
log.debug("删除文件 " + fileName + " 失败!");
return false;
}
} else {
log.debug(fileName + " 文件不存在!");
return true;
}
}