根据指定路径,上传文件(照片)到本地磁盘
有时候我们在做项目的时候,需要上传一些图片文件,但是,又存在无法上传到项目根路径的情况发生,这时候根据需要,我们可以上传一些文件或者图片到本地磁盘空间,等到项目部署之后,相应的图片会保存在部署的服务器上,开发环境就先上传到本地磁盘的一个具体路径,运用Java代码如何实现呢?下面是我的一些具体方法:
上传图片具体操作
1.配置文件内:配置路径信息
#图片保存路径 本地磁盘C 下面的import文件夹内放置上传的文件
import.file.savePath=c:/import
2.控制层:用@value注解注入文件保存路径
@Value("${import.file.savePath}")
private String importPath;
3.控制层:上传代码部分
/* *适用于上传一些指定信息的图片,用于某些特定的展示, *后台规定了文件名,所以重复上传会把过往上传的相同名字的文件删除覆盖! *但是文件后缀名会和原文件保持一致,防止展示图片时浏览器不兼容 **/
@RequestMapping(value="/Photo/importPhoto",method = { RequestMethod.POST , RequestMethod.GET})
public void importPhoto(MultipartFile importPhoto , HttpServletRequest request, HttpServletResponse response) throws IOException{
try{
//获取上传文件的名称
String fileName = importPhoto.getOriginalFilename();
//截取参数之后剩余的字符串并返回(返回文件名中“.”的索引值),获取上传图片的后缀名
String ext = fileName.subString(fileName.indexOf("."));
//根据指定存储路径新建file对象
File flist = new File(importPath);
if(!importPath.isEmpty()){
//检查指定路径下是否有文件夹,没有创建相应文件夹
flist.mkdir();
}
//查看指定路径下的文件夹内的文件
for(File f : flist.listFiles()){
if(f.getName().contains("文件名")){
//将指定的文件删除
f.delete();
}
}
//图片上传的路径和上传后的名称+原始后缀名
File file2 = new File(importPath,"文件名"+ext);
importPhoto.transferTo(file2);
//上传成功发送给前台的提示信息
response.getWriter().write("true");
} catch (Exception e){
e.printStackTrace();
//上传失败,有异常发送给前台的提示信息
resposne.getWriter().write("false");
}
}