- 浏览: 170181 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (173)
- Cocos2d-X (11)
- ubuntu (17)
- ofbiz (7)
- freemarker (1)
- nginx (9)
- redHat (7)
- SpringBoot (13)
- C# (0)
- PHP (2)
- Android (0)
- 咖啡豆 (7)
- Python (21)
- IONIC (8)
- AngularJS (1)
- 大鲸鱼 (10)
- 好玩的东西 (11)
- mysql 占用 (5)
- kelude (1)
- jS (0)
- Wx (1)
- H5-M500 (3)
- 开发即运维 (4)
- ReactNative (11)
- C++ (0)
- 其他杂项 (2)
- Truffle (1)
- WebLogic (0)
- Unity3D (0)
- WeChatMiniProgram (0)
- 小程序 (3)
- OLAP (1)
- ceb (1)
- 微信小程序 (2)
- 小程序undefined (1)
- 小程序机型问题 (1)
- Olingo (1)
- Cocos Creator (2)
- kylin (1)
- docker network (1)
最新评论
-
沈寅麟:
如果:[MySQL] specified key was to ...
OFBiz使用utf8mb4保存emoji -
沈寅麟:
从主机复制文件到容器里主机–>容器1,获取容器ID使用s ...
退出不关闭容器 -
沈寅麟:
conf.d/default.config---------- ...
Nginx配置AJP -
沈寅麟:
配置完nginx,在启动的时候遇到如下问题:nginx: [e ...
Nginx配置AJP -
沈寅麟:
docker commit [OPTIONS] CONTAIN ...
退出不关闭容器
/** * 上传 * @param request * @param response * @return */ @RequestMapping(value = "/upload", method = { RequestMethod.POST }) @ResponseBody public ResultModel<List<String>> upload(HttpServletRequest request, HttpServletResponse response) { ResultModel<List<String>> resultModel = new ResultModel<List<String>>(); try { // 创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); List<String> files = new ArrayList<>(); // 判断 request 是否有文件上传,即多部分请求 if (multipartResolver.isMultipart(request)) { // 转换成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; // 取得request中的所有文件名 Iterator<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) { // 取得上传文件 MultipartFile file = multiRequest.getFile(iter.next()); if (file != null) { // 取得当前上传文件的文件名称 String fileName = file.getOriginalFilename(); // 如果名称不为空,说明该文件存在,否则说明该文件不存在 if (fileName.trim() != "") { File newFile = new File(fileName); FileOutputStream outStream = new FileOutputStream(newFile); // 文件输出流用于将数据写入文件 outStream.write(file.getBytes()); outStream.close(); // 关闭文件输出流 file.transferTo(newFile); // 上传到阿里云 files.add(AliOSSUtil.upload(newFile)); newFile.delete(); } } } } resultModel.setReturnValue(files); } catch (ValidateException e) { resultModel.setSuccessed(false); resultModel.setErrorCode(e.getMessage()); } catch (Exception e) { resultModel.setSuccessed(false); resultModel.setErrorCode("system error"); log.error(e.getMessage()); e.printStackTrace(); } return resultModel; }
Util文件
public class AliOSSUtil { private final static Logger log = Logger.getLogger(AliOSSUtil.class); private static String END_POINT = "oss-cn-shanghai.aliyuncs.com"; private static String ACCESS_KEY_ID = "xxx"; private static String ACCESS_KEY_SECRET = "xxx"; private static String BUCKET_NAME = "xxx-image"; // 文件访问域名 private static String FILE_HOST = "https://file.xxx.com/"; /** * 方法描述:上传文件 * @param file 文件对象 * @return */ public static String upload(File file) { if (file == null) { return null; } // 创建OSS客户端 OSSClient ossClient = new OSSClient(END_POINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET); try { // 判断文件容器是否存在,不存在则创建 if (!ossClient.doesBucketExist(BUCKET_NAME)) { ossClient.createBucket(BUCKET_NAME); CreateBucketRequest createBucketRequest = new CreateBucketRequest(BUCKET_NAME); createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead); ossClient.createBucket(createBucketRequest); } // 创建文件路径 String fileUrl = DateUtil.dateTo8String2(new Date()) + "/" + UuidUtil.getUuidByJdk(false); // 上传文件 PutObjectResult result = ossClient.putObject(new PutObjectRequest(BUCKET_NAME, fileUrl, file)); if (null != result) { return FILE_HOST + fileUrl; } } catch (OSSException oe) { log.error(oe.getMessage()); } catch (ClientException ce) { log.error(ce.getMessage()); } finally { // 关闭OSS服务,一定要关闭 ossClient.shutdown(); } return null; } /** * 方法描述:上传文件 * @param inputStream 文件流 * @return * @throws FileNotFoundException */ public static String upload(InputStream inputStream) throws FileNotFoundException { if (inputStream == null) { return null; } // 创建OSS客户端 OSSClient ossClient = new OSSClient(END_POINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET); try { // 判断文件容器是否存在,不存在则创建 if (!ossClient.doesBucketExist(BUCKET_NAME)) { ossClient.createBucket(BUCKET_NAME); CreateBucketRequest createBucketRequest = new CreateBucketRequest(BUCKET_NAME); createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead); ossClient.createBucket(createBucketRequest); } // 创建文件路径 String fileUrl = DateUtil.dateTo8String2(new Date()) + "/" + UuidUtil.getUuidByJdk(false); // 上传文件 PutObjectResult result = ossClient.putObject(new PutObjectRequest(BUCKET_NAME, fileUrl, inputStream)); if (null != result) { return FILE_HOST + fileUrl; } } catch (OSSException oe) { log.error(oe.getMessage()); } catch (ClientException ce) { log.error(ce.getMessage()); } finally { // 关闭OSS服务,一定要关闭 ossClient.shutdown(); } return null; } }
最后 MAVEN 的依赖配置
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>
发表评论
-
SWAGGER DESC
2018-08-30 11:30 577swagger注释API详细说明 ... -
thymeleaf
2017-12-20 13:53 568maven <dependency> ... -
Spring Security
2017-12-20 13:46 16242.1.0 SecurityContextLogoutHand ... -
org.thymeleaf.exceptions.TemplateInputException: Error resolving template "
2017-12-13 15:51 2318增加配置 spring.thymeleaf.prefix=c ... -
FastJson
2017-12-07 14:47 734pom的配置 <!--fastjson数据配置sta ... -
SpringBoot定时任务
2017-08-21 17:12 508项目中,因为使用了第 ... -
快速解决SpringBoot跨域问题
2017-08-18 16:57 745新建 [CorsFilter.java]类。 impo ... -
MYSQL-JAP-CRUD
2017-08-18 15:38 455简单的CRUD 确保配置好mysql-conntor 和 jp ... -
简单路由接口
2017-08-18 15:13 474在main.java包下创建 风格熟悉的控制类 [Test ... -
项目基础配置
2017-08-18 14:46 472配置项目部分属性: 修改properties为yml 1. ... -
环境下创建项目
2017-08-18 14:37 464Study Env: -------------------- ... -
Eclipse环境下安装STS
2017-08-16 14:38 1153Help -> Eclipse Marketplace. ...
相关推荐
在本文中,我们将深入探讨如何使用SpringBoot与OSS(Object Storage Service)集成,实现文件的上传、查看、删除和下载功能。OSS通常是指云存储服务,如阿里云的OSS,它提供了大规模、安全且高可用的在线存储解决...
在本项目中,我们主要探讨如何使用SpringBoot框架与阿里云OSS(Object Storage Service)服务相结合,通过Easypoi库实现文件的导入、导出功能,以及OSS上的文件上传和下载。Easypoi是一个强大的Java操作Excel的工具...
Web直传方式是指用户可以直接通过浏览器将文件上传到OSS,减少了中间服务器的负担,提高了上传效率。 Vue.js是一种前端JavaScript框架,用于构建用户界面。它以其简单易用、高性能和可组合性而受到广泛欢迎。在这个...
springboot整合京东云OSS对象储存.实现文件/图片存储,下载,删除操作.有完整的demo.
vue前端将大文件分片通过springboot微服务上传到阿里云oss,已经调试没问题可以用,只要配置一下redis连接地址和oss的连接参数
本文主要介绍了如何使用SpringBoot集成阿里云OSS实现图片上传功能,包括添加阿里云OSS的SDK依赖、配置阿里云OSS的参数、创建OSS工具类和上传图片到阿里云OSS服务器。通过使用阿里云OSS,可以将图片存储到云端,减少...
本文主要介绍了如何使用SpringBoot框架整合阿里云OSS对象存储服务,实现文件上传和存储功能。文章通过示例代码详细介绍了整合过程,对读者学习和工作具有参考价值。 一、配置OSS服务 首先需要在阿里云平台上开通...
在Spring Boot框架中实现图片上传并添加水印的功能,是一个常见的需求,特别是在开发涉及多媒体内容的...以上就是关于Spring Boot实现上传图片并添加水印的详细内容,涵盖了从文件上传、图片处理到结果展示的完整流程。
这里通常会涉及到文件元数据的管理,如文件名、大小、上传时间、分片序号等。 接下来,**文件完整性校验** 很关键。为了确保分片能正确合并,每个分片上传后,需要计算其哈希值(如MD5或SHA-256),并存储下来。当...
这里,我们创建了两个POST方法:`uploadFile`用于接收前端上传的文件并存储到OSS,`uploadCallback`用于接收OSS的回调信息,可以根据需求实现自己的回调逻辑。 **7. 前端交互** 前端可以通过Ajax或者Fetch API向`/...
SpringBoot整合阿里云OSS文件上传下载完整的资料和详细过程的配置,亲自测试有效
在SpringBoot框架中,文件上传是一项常见的功能,尤其对于开发Web应用来说,用户可能需要上传图片、文档等数据。在SpringBoot 2.x版本中,文件上传可以通过集成Spring MVC的MultipartResolver组件来实现,这使得处理...
采用服务端签名后直传方案有个问题:大多数情况下,用户上传数据后,应用服务器需要知道用户...为此OSS提供了上传回调方案。OSS回调完成后,应用服务器再将结果返回给客户端,以便服务端实时了解用户上传了什么文件。
客户端上传视频到服务器,服务器对视频进行切片后,返回m3u8,封面等访问路径。可以在线的播放。 服务器可以对视频做一些简单的处理,例如裁剪,封面的截取时间。 在配置文件中,配置到本地视频目录后启动 打开页面 ...
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合...
SpringBoot 上传文件到本服务器目录与 jar 包同级问题 SpringBoot 上传文件到本服务器目录与 jar 包同级问题是一个常见的问题。当我们使用 SpringBoot 的 jar 包发布项目时,上传文件存放会变得非常复杂。因为我们...
将阿里OSS与SpringBoot结合,可以方便地在Web应用中实现文件的上传和下载功能。 在这个“阿里oss上传demo”中,我们主要会涉及以下几个关键知识点: 1. **阿里云OSS服务**:理解OSS的基本概念和工作原理,包括存储...
6. **文件存储与处理**:接收到文件后,你可能需要将其存储在服务器的某个位置,例如使用SpringBoot集成的文件系统存储或者云存储服务(如阿里云OSS)。此外,可能还需要对音频文件进行一些处理,比如转码、分析或...
在SpringBoot应用中,文件上传是一项常见的功能,用于接收用户通过网页上传的文件。本教程将详细介绍如何在...同时,考虑使用云存储服务如阿里云OSS或AWS S3来存储上传的文件,这样可以更好地扩展和管理文件。
这是一个关于使用SpringBoot实现图片和视频上传,并根据文件类型智能分配到不同的存储服务的案例。在该案例中,图片会被上传到自建的FastDFS图片服务器,而视频则会被上传到阿里云的OSS(Object Storage Service)...