1、上传文件时,需要手动创建目录
通常,系统临时目录"/tmp"是已经存在的。但是,如果自己增加了2级目录,比如"/tmp/oaAttachment",需要手动创建。
奇葩的是,Apache Commons FileUtils创建目录,竟然是force开头,按说默认应该是“mkDir”之类的方法名才对。
String saveDir = SystemUtil.get( SystemUtil.TMPDIR)+File.separator+"oaAttachment";
//linux出现了,目录不会自动创建
FileUtils.forceMkdir(new File(saveDir));
2、Fastdfs上传文件,注意文件名前后有空格的情况。
public String uploadFile(MultipartFile file) throws IOException {
log.info("FileClient->uploadFile,file={}",file);
StorePath storePath = storageClient.uploadFile(file.getInputStream(), file.getSize(),
FilenameUtils.getExtension(StringUtils.trim(file.getOriginalFilename())), null);
return getResAccessUrl(storePath);
}
FilenameUtils.getExtension(StringUtils.trim(file.getOriginalFilename())).
然后又遇到1个奇怪的问题:
System.out.println(StringUtils.trim(" oa-all-table.sql "));
代码里直接加“ ” trim起作用。
但是,Windows桌面直接给某个文件加空格,程序里 trim不起作用,特殊问题啊,先不管了。
养成trim的好习惯。
3、Fastdfs Nginx配置,下载文件名 支持中文
server {
listen 8888;
server_name localhost;
location /group1/M00 {
ngx_fastdfs_module; if ($arg_filename ~* \.(doc|docx|txt|pdf|zip|rar|png|jpg|jpeg|gif|xls|xlsx)$) {
add_header Content-Disposition "attachment;filename=$arg_filename";
}
} }
}
遇到一点问题,还需要再研究下。
http://192.1611111:8888/group1/M00/00/03/wKii612C7kCAOnN6AAADbj6wPdQ768.txt?filename=124.png
4、附件上传 支持多个。
SpringMVC很容易支持,但是 Swagger文档不太方便,网上也没有找到靠谱的答案。
最终是通过postman,按ctrl键 一次性选择多个。
后端代码:
|