java图片和视频上传_java实现上传和读取图片(视频)
0 背景
实现从前端上传图片(或视频),后端保存在指定目录下;再从前端读取文件,进行显示。
1 上传代码实现
1.1 html
1.2 ts
// 上传附件
handleChange(info: { file: UploadFile }): void {
switch (info.file.status) {
case 'uploading':
break;
case 'done':
this.response = info.file.response;//response为后端返回的一个对象
this.fileName = info.file.response.fileName;
break;
case 'error':
this.messageService.error('上传失败');
break;
}
}
1.3 Controller
@RestController
@RequestMapping("/api")
public class ImageResource {
@PostMapping(value = "/image/xxx")
public ResponseEntityuploadAISampleFile(@RequestParam(name = "uploadFile") MultipartFile file) {
//保存文件(一般写在service里)
String fileName = String.valueOf("s-"+System.currentTimeMillis());
String fullFileName = fileName + ".png";
Path path = Paths.get(properties.getImagePath(),fullFileName); //在配置文件中定义;文件实际的存储地址
deleteExistFile(path);
System.out.println("save image to path: "+path.toString());
File parentFile = path.getParent().toFile();
if (!parentFile.exists()) {
parentFile.mkdirs();
log.info("parent directory create success:" + parentFile.getPath());
}
try {
file.transferTo(path.toFile());
log.info("file upload success :" + path.toString());
} catch (Exception e) {
log.error(e.getMessage());
log.error("save image error:" + e);
}
//上传并保存成功后返回给前端的对象
ImageUploadResponse imageUploadResponse = new ImageUploadResponse();
String url = "/api/image/xxx/" + fileName; //自定义,用于显示时调用
imageUploadResponse.setUrl(url);
imageUploadResponse.setFileName(fileName);
imageUploadResponse.setUploaded(true);
return new ResponseEntity<>(imageUploadResponse, HttpStatus.OK);
}
}
1.4 ImageUploadResponse
public class ImageUploadResponse {
private boolean uploaded;
private String url;
private String fileName;
public boolean isUploaded() {
return uploaded;
}
public void setUploaded(boolean uploaded) {
this.uploaded = uploaded;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
@Override
public String toString() {
return "ImageUploadResponse{" +
"uploaded=" + uploaded +
", url='" + url + '\'' +
", fileName='" + fileName + '\'' +
'}';
}
}
2 显示代码实现
2.1 html
2.2 controller(1.3提到的ImageResource里添加)
@GetMapping(value = "/image/xxx/{fileName}", produces = MediaType.IMAGE_PNG_VALUE)
public ResponseEntityAIImage(@PathVariable String fileName) throws IOException {
//一般写在service里
String fullFileName = fileName + ".png";
Path path = Paths.get(properties.getImagePath(),fullFfileName);
if (!path.toFile().exists()) {
Resource resource = resourceLoader.getResource("classpath:image" + File.separator + type.defaultFile());
return resource.getInputStream();
}
System.out.println("get: "+path.toString());
File file = path.toFile();
//返回给前端的文件,可直接在html页面显示
InputStream inputStream = new FileInputStream(file);
InputStreamResource resource = new InputStreamResource(inputStream);
return new ResponseEntity<>(resource, HttpStatus.OK);
}
java图片和视频上传_java实现上传和读取图片(视频)相关推荐
- java文件上传_Java文件上传细讲
什么是文件上传? 文件上传就是把用户的信息保存起来. 为什么需要文件上传? 在用户注册的时候,可能需要用户提交照片.那么这张照片就应该要进行保存. 上传组件(工具) 为什么我们要使用上传工具? 为啥我 ...
- java 视频预览_java在上传视频时生成预览图
在圣品上传时往往需要生成一张预览图(缩略图),如果在非特殊情况下让用户单独上传,会造成工作压力,此时可以用视频中某一帧作为封面图,实现方式如下: public class ImageUtil { /* ...
- java 中传输文件的代码_java文件上传Demo(必看篇)
说到文件上传我们要做到: 1.引入两个包:commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar 2.将form改为上传文件模式:enctype=" ...
- java 调用 swf 文件上传_java文件上传方法
文件上传方法(一次上传一个文件,多个文件的话,请写循环调用) Upload.uploadFile(theFile, filePath) 说明: theFile:类型是FormFile filePath ...
- java 客户端上传_java实现上传文件到服务器和客户端
JAVA编写一个可以上传文件的服务器和客户端,具体内容如下 服务端 class Server { public static void main(String[] args) throws Excep ...
- java文件异步上传_java 异步上传文件
我们的java上传文件,需要form同步上传,并且需要设置enctype为multipart/form-data. 如果将form使用ajax异步提交的话,将会报错说enctype不是multipar ...
- java断点续传上传_java断点续传上传文件,突然关闭然后再上传文件为什么不是从之前上传的进度上传...
Controller层里这么写的 @Controller public class UploadAction { @Autowired private File_Service FileSerivce ...
- java复制和上传_java文件上传复制等功能
package com.sitech.message.controller.task; import java.io.File;//引入类 import java.io.FileInputStream ...
- excel oss 上传_java实现上传文件到oss(阿里云)功能示例
本文实例讲述了java实现上传文件到oss(阿里云)功能.分享给大家供大家参考,具体如下: 做这个功能之前我们需要导入阿里云OSS官方提供的工具包 aliyun-sdk-oss-2.5.0.jar 这 ...
最新文章
- 错误名称:EntityCommandExecutionException
- 雷军做程序员时写的文章,太牛了!
- 计算机弹奏两只老虎爱跳舞,原神风物之诗琴乐谱大全
- word-break属性和css换行显示
- 为什么python打不开_python文件打不开如何解决
- 【操作系统】实验 模拟操作系统的存储系统
- linux内核源码目录结构分析
- 东南亚ERP仓储管理系统怎么样?
- java WebSocket的实现以及Spring WebSocket
- CENTOS6.6上搭建单实例ORACLE12C
- linux抓取僵尸网络进程脚本
- WebDriver Sierra 10.12.3 N卡驱动
- 对象base64转码_什么是 Base64 编码
- 登录失败:用户帐户限制。可能的原因包括不允许空密码登录时间限制或强制的策略限制。
- AD从原理图到PCB超详细教程
- linux 下如何添加用户、权限
- 企业信息化战略与实施
- 【转】Java并发编程:并发容器之ConcurrentHashMap
- 机器学习在热门微博推荐系统的应用
- ERROR 220624 --- [ntainer#2-2-C-1] o.s.k.l.KafkaMessageListenerContainer : Failed to set initial