GithubHelp home page GithubHelp logo

yhy949 / fileupload Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xnx3/fileupload

0.0 0.0 0.0 1.8 MB

两行代码实现文件上传。2分钟对接使用,从此无论本地存储、分布式存储、对象存储……都是完全一样的代码调用! 它赋予你各种存储随便切换随便用的能力,而无需动项目代码。

License: Apache License 2.0

Shell 0.99% JavaScript 7.94% Java 89.64% HTML 1.44%

fileupload's Introduction

Java两行代码实现文件上传。2分钟对接使用,从此无论本地存储、分布式存储、对象存储……都是完全一样的代码调用! 它赋予你各种存储随便切换随便用的能力,而无需动项目代码。

快速使用

1. pom.xml 中加入:

如果你只是单纯本地用,用不到像是华为云OBS存储了、Springboot框架的,那你可以只使用 <artifactId>fileupload-core</artifactId> 这一个核心实现即可

<!-- 文件上传相关的核心支持 https://github.com/xnx3/FileUpload -->
<dependency> 
	<groupId>cn.zvo.fileupload</groupId>
	<artifactId>fileupload-core</artifactId>
	<version>1.2</version>
</dependency>

2. 代码中调用

FileUpload fileUpload = new FileUpload();	//创建
UploadFileVO vo = fileUpload.uploadString("abc/1.txt", "123456"); //这里上传一个文本文件,文本文件的内容是 123456 ,将他保存到 abc 目录下的 1.txt 文件
System.out.println(vo); //输出到控制台,看看结果

3. 更多设置方式

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);

4. Demo示例

demo_javase/README.md

存储方式

默认使用的是本地存储。可以切换成采用华为云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框架中使用

在springboot项目中使用时,pom.xml 中再加入以下:

<!-- 在 SpringBoot 框架中的快速使用。 (在不同的框架中使用,这里artifactId引入的fileupload-framework-xxx也不同) -->
<dependency> 
	<groupId>cn.zvo.fileupload</groupId>
	<artifactId>fileupload-framework-springboot</artifactId>
	<version>1.3.1</version>
</dependency> 
代码中的变动:

正常是用 cn.zvo.fileupload.FileUpload
而SpringBoot框架中,则使用 cn.zvo.fileupload.framework.springboot.FileUpload 仅此区别。
具体SpringBoot的使用,可参考: framework_springboot/README.md

扩展-用户自定义存储的场景

比如我有一个建站平台,可以开通多个网站。每个网站都可以单独设置它自己的存储方式、以及生成网站html静态文件的保存方式,比如有的建站人员习惯ftp、有的建站人员习惯华为云OBS云存储,那么可以使用本项目的能力,有网站用户自行决定采用哪种存储方式。而多种多样的存储方式,无需建站平台本身进行代码的判断、适配等繁琐的工作!
有关这种场景,可以参考: https://gitee.com/mail_osc/FileUpload/tree/main/config_json

交流及参与贡献

作者:管雷鸣 微信:xnx3com QQ交流群::579544729

开源项目

致力于开源基础化信息建设,如有需要,可直接拿去使用。这里列出了我部分开源项目:

项目 star数量 简介
wangmarket CMS 私有部署自己的SAAS建站系统
obs-datax-plugins Datax 的 华为云OBS 插件
templatespider 扒网站工具,所见网站皆可为我所用
FileUpload 文件上传,各种存储任意切换
cms client 云服务深度结合无服务器建站
kefu.js https://gitee.com/mail_osc/kefu.js
msg.js 轻量级js消息提醒组件
translate.js 三行js实现 html 全自动翻译
WriteCode 代码生成器,自动写代码
log Java日志存储及读取
layui translate Layui的国际化支持组件
http.java Java8轻量级http请求类
xnx3 Java版按键精灵,游戏辅助开发
websocket.js js的WebSocket框架封装
email.java 邮件发送
notification.js 浏览器通知提醒工具类
pinyin.js JS中文转拼音工具类
xnx3_weixin Java 微信常用工具类
xunxian QQ寻仙的游戏辅助软件
wangmarket_shop 私有化部署自己的 SAAS 商城
wm Java开发框架及规章约束
yunkefu 私有化部署自己的SAAS客服系统
javadoc 根据标准的 JavaDoc 生成接口文档
elasticsearch util 用sql方式使用Elasticsearch
AutoPublish Java应用全自动部署及更新
aichat 智能聊天机器人
yunbackups 自动备份文件到云存储及FTP等
chatbot 智能客服机器人
java print Java打印及预览的工具类
…………

fileupload's People

Contributors

xnx3 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.