接口需求是Android/iPhone需要通过接口上传一些文件,例如图片,jar包,rar压缩包,视频,音乐...等!困扰我这个菜鸟很久,整理一下!!分享给同我一样的菜鸟
后台需要处理这些数据,之前没有接触过!但类似的FileUpLoad的插件用过,其实原理差不多,因为计算机原始数据都是01代码,所以只要将这些文件保存成二进制就可以,数据库(mysql),最大4G!!
问题1,如果实现!联调之后共享代码.
问题2,为什么要转为2进制,不直接把上传的文件放在服务器上!
我也请教了别人,首先放在服务器上会很乱,不方便维护!管理不方便,优点当然是不占用数据库资源了(很多时候软件的瓶颈就是数据库的优化).
至于2进制,当然放在数据库里很方便维护,管理!移植,都只需要SQL语句都可以完成,但有个重点是性能问题(内存的占用),如果使用Hibernate的话,需要用懒加载,这样可以保证性能不会很操蛋.
select * from table where id=1
from table where id=1
貌似两个功能是一样的,但是用了懒加载第二个也许在加载数据更快,至于为什么去了解一下懒加载吧!!
问题3,如何选择呢!
如果经常需要访问这个资源,那就直接用文件的形式,缓存资源!!如果不是经常使用可以用二进制.如果你有不同看法,请赐教!!
public static void main(String[] args) throws Exception {
/**
* 将字符串转换为二进制
*/
String str1 = "我是赵昌文"; //需要转换的字符串
byte[] bys = str1.getBytes("UTF-8"); //将字符串转换为byte数组(GBK...等)
//用来保存UTF-8的byte数据
StringBuffer sb = new StringBuffer();
//用来保存二进制
StringBuffer sb1 = new StringBuffer();
//遍历byte的数据(跟转换无关)
for(int j=0;j<bys.length;j++){
//(j+1)这样在第二次循环j从1开始,j本身不参与("运算"---字符串拼接),可以写j+1试试
//System.out.println("byte(UTF-8)第"+(j+1)+"个"+bys[j]+"转为二进制"+Integer.toBinaryString(bys[j]));
sb.append(bys[j]+",");
sb1.append(Integer.toBinaryString(bys[j])+",");
}
/**
* 将二进制转换回字符串
*/
System.out.println("UTF-8:"+sb);
System.out.println("二进制:"+sb1);
// byte[] b = {-26,-120,-111};
// System.out.println("转换回来!!"+new String(b,"UTF-8"));
}
上面是自己写的一些转换,文件转换二进制然后才保存,下边是上传!
//提交资源保存
@RequestMapping("/saveResource.aa")
public ModelAndView saveResource(@RequestParam("fileParameter") MultipartFile file){
map = new HashMap();
//为false时文件不为空
if(file.getName()!=null&&file.isEmpty()==false){
ResourceImg resource = new ResourceImg();
try {
resource.setBody(Hibernate.createBlob(file.getBytes()));
resource.setMimeType(file.getContentType());
resource.setName(file.getName());
map.put("result",rm.saveResource(resource));
} catch (IOException e) {
e.printStackTrace();
}
return new ModelAndView("jsonView",map);
}else{
map.put("result","null");
return new ModelAndView("jsonView",map);
}
}
//保存到路径,跟上边的区别,上边的保存数据库
//将图片存到服务器
@RequestMapping("/imageUpload.aa")
public String processImageUpload(@RequestParam("fileParameter") MultipartFile image) throws IOException {
FileCopyUtils.copy(image.getBytes(),new File("d:/"+image.getOriginalFilename()));
return "imageList";
}
分享到:
相关推荐
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和...Spring boot整合MinIO客户端实现文件管理
Spring Boot实现文件上传和下载过程如下: 文件上传: 添加Web依赖,创建一个Controller类。 添加处理文件上传的POST请求方法,使用MultipartFile接收上传文件。 验证文件,保存到服务器文件系统。 返回响应给客户端...
在Spring Boot中实现文件上传和下载功能可以通过以下步骤进行操作: 文件上传: 1.配置文件上传相关的依赖: 在项目的 pom.xml 文件中添加依赖 2.配置文件上传的控制器(Controller): 创建一个控制器来处理文件...
Spring Boot实现文件上传和下载过程如下: 文件上传: 添加Web依赖,创建一个Controller类。 添加处理文件上传的POST请求方法,使用MultipartFile接收上传文件。 验证文件,保存到服务器文件系统。 返回响应给客户端...
一、组名:文件上传后所在storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。 二、虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果...
tftp客户端简单文件传输协议(TFTP)客户端的实现。 请参阅RFC 1350。 -编译并在没有命令行参数的情况下运行。 CONNECT-客户端希望关键字connect启动任何传输。 键入connecthostname将连接到主机。 键入连接并单击...
文件上传客户端表单需要满足: 1、表单项type=“file” 2、表单的提交方式是post 3、表单的enctype属性是:enctype=“multipart/form-data” 选择了一个文件,点击上传,我们会把这个请求提交,选择了文件,把所有的...
该Maven程序包括如何使用Eureka注册服务、如何实现服务间的调用(user和order),实现负载均衡、客户端负载均衡、API服务网关和分布式配置管理。并启动运行完成相关调试,均可实现。
对于上传功能来说,选好本地文件,再选好服务器目录,选择上传功能即可,实现了更好的远程文件管理。 对应的设计文档在这里:https://blog.csdn.net/xiaolong1126626497/category_11257906.html
问题主要出现在项目中需要上传视频文件,超过500M,但是报错了。 原因是tomcat限制了大小,此问题解决springBoot框架下tomcat启动 模式的文件上传大小限制。
该系统完美集成了fastDFS文件服务客户端,支持断点续传、分块上传、文件秒传等功能,提供了稳定的前后端组件(前端H5),并支持多用户并发上传文件校验(文件锁)。该组件可以快速集成fastDFS文件服务,免去繁琐的...
CSharp客户端通过Http模拟表单提交到Java的web服务端.rar C#的wpf客户端使用HttpWebRequest模拟网页表单提交数据到Java的web服务端,...*该程序可以同时提交表单数据和上传文件* **********************************
基于SPRING BOOT的情侣恋爱足迹应用的设计与实现。整个项目分三大块,客户端是一款android应用,服务端-安卓毕业设计 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是...
版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) ...
框架是Spring+SpringMvc+Mybatis+maven+redis。...2、文件管理,客户端上传文件到服务器,服务器将文件上传到ftp服务器。 客户端可从ftp服务器上下载文件到本地。 3、整合了redis缓存,加载了2个缓存进行切片管理。
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...
主要是面向客户端提供文件传输,上传或下载文件 file-core 主要功能是对文件进行处理,包括文件转换,文件预览,文件转储等功能 admin 简单的超级管理员功能 主要技术 springboot netty redis hdfs 基于...
开始使用当前MASTER为1.1.4-SNAPSHOT版本如果使用 SNAPSHOT 版本 , 请勾选 develop-...#单个文件上传大小限制spring: servlet: multipart: max-file-size: 5000MB#fastdfs客户端配置fdfs: connect-timeout: 1601 thumb-
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...