public String upload(MultipartFile file, Integer dir) {
//文件上传
String targetFilePath = "D:\\xxx\\yiyimanager\\src\\assets\\imagess";
//获取当前文件的磁盘路径
// System.getProperty("user.dir");
// ClassUtils.getDefaultClassLoader().getResource("").getPath();
File filepath = new File(targetFilePath);
if (!filepath.exists()) {
filepath.mkdirs();
}
/* //检查文件是否为空
if(file.isEmpty()) {
return "请选择图片";
}
//检查文件大小
if(file.getSize() > Constant.M2_TO_BYTE) {
return "请上传2M以内的图片";
}
//检查是否是图片
BufferedImage bi = ImageIO.read(file.getInputStream());
if(bi == null){
return "上传的文件不是图片";
}*/
//文件原本的名字
String originalFilename = file.getOriginalFilename();
String fileName = UUID.randomUUID().toString().replace("-", "");
File targetFile = new File(targetFilePath + File.separator + fileName + ".jpg");
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(targetFile);
IOUtils.copy(file.getInputStream(), fileOutputStream);
//file.transferTo(new File(targetFilePath + File.separator + fileName + ".jpg"));//将传来的文件写入新建的文件
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
try {
fileOutputStream.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
return targetFile.toString();
}
文件的MIMEType类型
浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器设置正确以将正确的MIME类型附加到响应对象的头部是非常重要的。
语法
通用结构 type/subtype
MIME的组成结构非常简单;由类型与子类型两个字符串中间用’/'分隔而组成。不允许空格存在。*type *表示可以被分多个子类的独立类别。subtype 表示细分后的每个类型。
MIME类型对大小写不敏感,但是传统写法都是小写。
类型 | 描述 | 典型示例 |
---|---|---|
text | 表明文件是普通文本,理论上是人类可读 | text/plain, text/html, text/css, text/javascript |
image | 表明是某种图像。不包括视频,但是动态图(比如动态gif)也使用image类型 | image/gif, image/png, image/jpeg, |
audio | 表明是某种音频文件 | audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav |
video | 表明是某种视频文件 | video/webm, video/ogg |
application | 表明是某种二进制数据 | application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, |