接口需求是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客户端实现文件管理
1. 客户端上传文件:客户端通过HTTP请求上传文件到服务器端。 2. 服务器端处理上传文件:服务器端使用MultipartFile接口或Servlet API来处理上传的文件。 3. 存储文件:服务器端将上传的文件存储到指定的文件系统或...
本话题主要探讨如何在Spring Cloud环境中处理文件上传,特别是在结合Feign和Zuul这两个组件时的实现方法。Feign是Spring Cloud的一个声明式HTTP客户端,用于简化服务间的调用;而Zuul则是作为API网关,提供路由、...
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和...Spring boot整合MinIO客户端实现文件管理
【标题】:“jersey+spring+springmvc实现上传” 在Web开发中,文件上传功能是一项常见且重要的任务。本示例将介绍如何结合Jersey、Spring和Spring MVC框架来实现这一功能。Jersey是Java RESTful Web服务的实现,而...
基于spring+cxf实现用户文件传输的webservice 在本文中,我们将探讨如何使用Spring+CXF实现用户文件传输的Webservice。该Webservice提供了基本的报文上传和查询功能,同时还提供了用户身份验证功能。 Spring 和 ...
### Java Spring Boot应用程序中实现文件上传和下载功能 在现代Web开发中,文件上传与下载是常见的需求之一。Spring Boot框架提供了简洁的方式帮助开发者轻松实现这些功能。本文将详细介绍如何在Spring Boot项目中...
在本文中,我们将深入探讨如何利用Spring MVC实现在Web应用中进行文件的上传与下载。 首先,我们需要理解Spring MVC中的两个核心组件:Model、View和Controller。Controller接收用户请求,处理业务逻辑,然后将结果...
【Spring+Struts+Hibernate 实现文件上传和下载】 在 J2EE 开发中,文件的上传和下载是一项基础但重要的功能。SSH(Struts、Spring、Hibernate)框架提供了便捷的方式来处理这一问题,无需依赖像 SmartUpload 或 ...
在Spring MVC中,文件的上传和下载是常见的功能需求,这涉及到客户端与服务器之间的数据传输。本篇文章将深入探讨Spring MVC如何实现文件上传和下载。 ### 文件上传 1. **依赖配置**:在Spring MVC项目中,为了...
这个系统结合了Spring Boot后端框架和Vue.js前端框架,以实现文件的分片上传与下载功能,同时具备断点续传和秒传特性,为用户提供了流畅的文件操作体验。 首先,Spring Boot是基于Spring框架的一个快速开发工具,它...
本篇将详细讲解如何实现Android客户端上传文件以及Struts2服务端接收的过程。 首先,让我们从Android客户端开始。在Android中,文件上传主要涉及`HttpURLConnection`或`OkHttp`库,通过POST请求将文件内容发送到...
在这个特定的场景中,我们关注的是如何利用这三个框架来实现文件的上传和下载功能。 Struts是MVC(模型-视图-控制器)架构模式的一个实现,它为Web应用提供了请求处理和业务逻辑控制。在文件上传中,Struts框架提供...
将CXF与Spring整合,可以充分利用Spring的灵活性和CXF的强大功能,实现高效的服务端和客户端开发。 **服务端开发** 1. **创建服务接口**:首先定义服务接口,通常使用JAX-WS规范来创建。例如,创建一个名为`...
在这个场景下,结合Google的断点续传框架,我们可以实现大文件的高效、安全上传,即使在上传过程中网络中断,也能从上次中断的位置继续,而无需重新开始。以下是对这个知识点的详细解释。 首先,了解断点续传的基本...
通过以上步骤,我们可以实现一个完整的Spring Boot文件上传服务,将用户上传的文件保存到本地目录,并返回一个可供访问的文件URL。这个过程中涉及的技术包括Spring Boot MVC、文件I/O、安全策略、错误处理等多个方面...
在这个整合包中,我们还将探讨如何结合Bootstrap来实现前端界面的快速开发,并学习文件上传与下载的功能。 1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等...
本章节将详细探讨如何实现Android客户端与服务端的文件上传及下载,包括使用进度条显示上传和下载状态。 一、Android客户端文件上传 1. 文件选择:首先,需要一个文件选择器组件,如`Intent Chooser`或自定义的...