雷鸣快传是使用两行 Java 代码实现的文件上传工具。2分钟对接使用,从此无论本地存储、分布式存储、对象存储……都是完全一样的代码调用! 它赋予你各种存储随便切换随便用的能力,而无需动项目代码。
如果你只是单纯本地用,用不到像是华为云OBS存储了、Springboot框架的,那你可以只使用 fileupload-core
这一个核心实现即可
<!-- 文件上传相关的核心支持 https://github.com/xnx3/FileUpload --> <dependency> <groupId>cn.zvo.fileupload</groupId> <artifactId>fileupload-core</artifactId> <version>1.1</version> </dependency>
FileUpload fileUpload = new FileUpload(); //创建 UploadFileVO vo = fileUpload.uploadString("abc/1.txt", "123456"); //这里上传一个文本文件,文本文件的内容是 123456 ,将他保存到 abc 目录下的 1.txt 文件 System.out.println(vo); //输出到控制台,看看结果
FileUpload fileUpload = new FileUpload(); //设置只允许上传jpg、png、gif、txt后缀的文件 fileUpload.setAllowUploadSuffix("jpg|png|gif|txt"); //设置允许上传的文件大小,最大不能超过10MB fileUpload.setMaxFileSize("10MB"); //设置存储到哪。不设置默认使用LocalStorage本地存储。比如这里可以设置使用华为云OBS存储 fileUpload.setStorage(...); //设置上传后文件所访问URL的域名,当文件上传完成后,会通过 UploadFileVO.url 返回文件访问的URL fileUpload.setDomain("http://res.zvo.cn/"); //这里上传一个文本文件,文本文件的内容是 123456 ,将他保存到 abc 目录下的 1.txt 文件 UploadFileVO vo = fileUpload.uploadString("abc/1.txt", "123456"); //输出到控制台,看看结果 System.out.println(vo);
默认使用的是本地存储。可以切换成采用华为云OBS对象存储、私有化部署FastDFS等来进行存储。 比如使用华为云OBS对象存储,则pom.xml 中额外加入:
<!-- 加入华为云OBS存储的实现。 (存储到哪,这里artifactId就引入的哪里的 storage.xxx 如果单纯存储到本地,这里直接就不用在引入这个 storage.xxx 了,core中默认带了本地文件存储的实现) --> <dependency> <groupId>cn.zvo.fileupload</groupId> <artifactId>fileupload-storage-huaweicloudOBS</artifactId> <version>1.0</version> </dependency>
代码中的变动,仅仅只是针对 FileUpload ,增加一行 setStorage 设置:
fileUpload.setStorage(new HuaweicloudOBSStorage(key, secret, endpoint, obsname)); //设置使用obs存储
如此,便将本地存储切换为了使用华为云OBS存储。 点此查看使用华为云OBS对象存储的详细说明 storage_huaweicloudOBS/README.md
在springboot项目中使用时,pom.xml 中再加入以下:
<!-- 在 SpringBoot 框架中的快速使用。 (在不同的框架中使用,这里artifactId引入的fileupload-framework-xxx也不同) --> <dependency> <groupId>cn.zvo.fileupload</groupId> <artifactId>fileupload-framework-springboot</artifactId> <version>1.1</version> </dependency>
代码中的变动:
正常是用 cn.zvo.fileupload.FileUpload
而SpringBoot框架中,则使用 cn.zvo.fileupload.framework.springboot.FileUpload
仅此区别。 具体SpringBoot的使用,可参考: framework_springboot/README.md
<!-- 文件上传相关的核心支持 https://github.com/xnx3/FileUpload --> <dependency> <groupId>cn.zvo.fileupload</groupId> <artifactId>fileupload-core</artifactId> <version>1.1</version> </dependency>
cn.zvo.fileupload fileupload-framework-springboot 1.0
/** * 文件上传 */ @RequestMapping(value="upload.json", method= {RequestMethod.POST}) @ResponseBody public UploadFileVO uploadImage(@RequestParam("file") MultipartFile multipartFile){ //将文件上传到 upload/file/ 文件夹中 return FileUploadUtil.uploadImage("upload/file/", multipartFile); }
/** * 文件下载 * @param path 要下载的文件,传入如 upload/file/123.zip */ @RequestMapping(value="download") public void download(String path, HttpServletResponse response){ FileUploadUtil.download(path, response); }
src/main/resources/static/ 下增加一个 upload.html 的文件,目的是能使用 localhost:8080/upload.html 就能访问到。 其内容为:
选择要上传的文件(可以传个图片试试):<br/> <input type="file" name="file"/><button onclick="upload();">上传</button> <script src="http://res.zvo.cn/request/request.js"></script><!-- 文件上传,开源地址 https://github.com/xnx3/request --> <script> function upload(){ var file = document.getElementsByName('file')[0].files[0]; //要上传的文件 request.upload('/upload.json', {}, file, function(data){ //执行上传操作 if(data.result == '1'){ // 上传成功 }else{ // 上传出错,可弹出失败提示 : data.info } }); } </script>
访问 http://localhost:8080/upload.html 即可进行测试体验了。 另外也可参见 demo_springboot/README.md 直接将这个demo_springboot项目拉下来,无需任何修改直接运行即可访问使用
配置 application.properties (或yml),加入:
# 文件上传 https://github.com/xnx3/FileUpload # # 设置允许上传的文件最大是多大,比如10MB 单位为 KB、MB , 如果此项不设置,这里默认是3MB fileupload.maxSize=10MB # 设置允许上传的后缀名,传入格式如 png|jpg|gif|zip 多个用英文|分割。如果不设置,默认允许像是pdf、word、图片、音频、视频、zip等常用的且安全的文件后缀都可上传 fileupload.allowUploadSuffix=jpg|png|txt|zip # 设置上传后文件所访问URL的域名,传入如: http://xxxx.com/ 注意格式,后面以 / 结尾。非必填,可不设置。这里更多是用于像是CDN加速时,有专门的附件域名的场景使用 fileupload.domain=http://res.zvo.cn/ # # 当前使用的是哪种存储方式。默认使用的是本地存储的方式。 # 上传文件保存到的路径,格式如 /mnt/tomcat8/fileupload/ 、或者windows服务器的话路径如 C:\\\\\\\\Users\\\\\\\\Administrator\\\\\\\\Desktop\\\\\\\\log\\\\\\\\ 注意最后的斜杠不能拉下。如果不设置此,则不开启,上传文件则没任何动作。 #log.datasource.file.path=/mnt/tomcat8/fileupload/ fileupload.storage.local.path=G:\\\\\\\\git\\\\\\\\FileUpload\\\\\\\\
默认是使用的本地存储的方式,但是在一些微服务、以及本身项目需要分布式部署的场景下,需要使用分布式存储支持,服务器本地存储显然是不够的,这里以华为云OBS对象存储的示例来演示
<!-- 加入华为云OBS存储的实现。 (存储到哪,这里artifactId就引入的哪里的 storage.xxx 如果单纯存储到本地,这里直接就不用在引入这个 storage.xxx 了,core中默认带了本地文件存储的实现) --> <dependency> <groupId>cn.zvo.fileupload</groupId> <artifactId>fileupload-storage-huaweicloudOBS</artifactId> <version>1.0</version> </dependency>
配置 application.properties (或yml),加入:
# # 设置当前使用的是哪种存储方式 # 如果此不设置,默认使用的是本地存储的方式。如果设置了,pom.xml 文件中,记得将此存储方式引入进来,不然会报错找不到这个class文件 # 下面便是具体针对华为云obs这种存储方式的配置了 # 华为云的 Access Key Id fileupload.storage.huaweicloudOBS.accessKeyId=H0TPUBC6YDZxxxxxxxx # 华为云的 Access Key Secret fileupload.storage.huaweicloudOBS.accessKeySecret=je56lHuJ62VOhoSXxsfI9InmPAtVY9xxxxxxx # 区域,传入格式如 "obs.cn-north-4.myhuaweicloud.com" ,详细可参考 https://developer.huaweicloud.com/endpoint?OBS fileupload.storage.huaweicloudOBS.endpoint=obs.cn-north-4.myhuaweicloud.com # 桶的名称 fileupload.storage.huaweicloudOBS.obsname=cha-template
注意,要将 fileupload.storage.local.path
默认服务器本地存储的配置注释掉
如此,就完成了从本地存储转为华为云OBS对象存储的实现。
行走刀口,不得安生。面对魔界中一波波袭来的敌人,今日让他们见识何为雷霆之怒!三种攻击模式、三种属性相克,千变万化的敌人,在一对一的回合制对战中,与各种强敌斗智斗勇。狭路相逢,勇者为王。 转载于:https://www.cnblogs.com/lyfd8/p/9479133.html
define("_needlogin", "1"); define("_access", "1"); include_once("include/db.config.php");?> if(!isset($end)){ $results['radio']=json_decode($results['radio']); ?> = $_SESSION['num'] ?>.= $results['con
雷鸣网页自动翻译,在谷歌翻译的基础上进行了优化,同谷歌浏览器自动翻译的效果,适用于html网页,增加两行js即可实现多国语言切换的能力。 在网页上几秒增加多语言切换能力: 随便打开一个网页 右键-审查元素 粘贴入以下代码: var head= document.getElementsByTagName('head')[0]; var script= document.createEle
雷鸣云转音工具用于将中文转为拼音,不依赖任何三方库,几KB原生js实现,有良好的兼容性,不挑运行环境。 使用方式 <script src="https://res.zvo.cn/pinyin/pinyin.js"></script><script>var str = pinyin.convert('你好')alert(str);</script> 在线体验 https://res.zvo.cn/p
我正在开发一个带有文件上传的web应用程序。 我只是写了一个PHP代码来上传一个图像。 当我运行此代码时,我可以在文件上传时获得输出,如果上传错误 我给了777权限来访问pic文件夹 有什么问题,有什么想法吗,, 类型 Print_R 数组 谢啦
问题内容: 我正在使用节点v0.10.26并表示v4.2.0,而我对节点还很新。在过去三个多小时的时间里,我一直在想着要在节点上使用文件上传表单,这是我的头。在这一点上,我只是试图让req.files不返回未定义。我的观点看起来像这样 这是我的路线 这是我的app.js 我看到了其中包含的内容,应该可以提供帮助,但是如果添加这些行,我什至无法启动服务器。 问题答案: ExpressJS问题: 大多
websocket.js 是 WEB 端 WebSocket 工具类 1. 功能介绍 1.1 断线重连 正常挂着时,断线自动重连 发送消息时,断线自动重连,并将之前的消息在连接成功后发送 1.2 心跳内置 自动发送心跳消息 用 onmessage 接收消息时会自动过滤掉心跳消息,也就是服务端的心跳消息不会进入到重写的 onmessage 方法 2. 代码使用 2.1 引入js <script sr
本文向大家介绍C++文件上传、下载工具,包括了C++文件上传、下载工具的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++文件上传下载的实现代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助。