之前做的web service 涉及到一些基础的传输,如基本类型,但是在数据交换中可定会存在image的图片传输,通过base64将图片转码进行在web service上进行传输是一种很好的策略。
以下是实现代码:
package com.duduli.li;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Image {
public static String GetImageStr() {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
String imgFile = "d:\\111.jpg";// 待处理的图片
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);// 返回Base64编码过的字节数组字符串
}
public static boolean GenerateImage(String imgStr) {// 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
return false;
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
String imgFilePath = "d:\\222.jpg";// 新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String strImg = GetImageStr();
System.out.println(strImg);
System.out.println(strImg.length());
GenerateImage(strImg);
}
}
深入:既然对于image类型可以使用web service传输,那么对于其他文件也应该适用。
分享到:
相关推荐
在这个项目中,我们主要探讨如何利用Java实现图片的防篡改功能,通过生成图片的唯一标识(哈希值)并进行比对来检测图片是否被篡改。 1. **哈希算法**: 哈希(Hash)函数是一种将任意长度的数据映射为固定长度...
10. **FTP/HTTP协议**:除了自定义的Socket解决方案,还可以使用Java的内置库实现FTP(文件传输协议)或HTTP(超文本传输协议)进行文件传输。这些标准协议通常有成熟的库支持,如Apache Commons Net库。 以上就是...
总的来说,“三星JAVA传输免刷机软件”提供了一个方便、安全且轻量级的解决方案,帮助三星用户在不刷机的情况下进行数据管理,提高了设备使用的便利性和安全性。由于文件列表只有一个“三星JAVA传输免刷机软件!”,...
在Java编程环境中,实现“拍照”和“截取图片”的功能涉及到多个技术层面,包括Web应用、设备访问、图像处理等。以下将详细介绍这些知识点: 1. **Java Web 应用**: Java Web应用程序是基于Java技术构建的,可以...
### Java离线数据传送知识点详解 #### 一、离线数据传送的概念与意义 在Java开发过程中,离线数据传送是一种非常重要的技术手段,尤其是在处理大量数据或进行复杂查询时。传统的数据处理方式通常需要保持数据库...
本项目“java图片上传.zip”显然提供了一个实现图片上传到本地服务器和图片服务器的解决方案。以下将详细讲解这一过程涉及的关键知识点,以及如何在实际开发中应用这些技术。 1. **MultipartFile接口**: Java ...
- **解决方案**:通过图片压缩技术,可以有效地控制上传图片的大小,避免因图片过大导致的硬盘空间不足问题。 ### 7. 知识点七:自定义图片尺寸 - **配置项**: - `outputWidth`: 输出图片的宽度。 - `output...
一、Java图片上传基础 1. **Servlet**:在Java Web应用中,Servlet扮演着接收HTTP请求并生成响应的角色。图片上传通常通过Servlet来处理,接收到前端提交的文件数据,并将其存储到服务器的特定目录或数据库中。 2....
在IT行业中,Java是一种广泛应用的编程语言,尤其在文件传输领域有着重要的角色。这篇文档将深入探讨基于Java的文件传输设计与实现,结合一个具体的毕设项目案例,以帮助理解如何利用Java进行文件的发送、接收和管理...
"Thumbnails 纯java图片压缩api 包括文档及相关学习资料" 是一个专为Java开发者设计的图片压缩库,旨在提供高效的图片压缩解决方案。下面将详细介绍这个API的核心特性、使用方法以及为何它能在Java图片处理领域...
"Java 图片本地压缩框架,节省流量必备之选.zip" 提供了一个开源的解决方案,旨在帮助开发者高效地压缩图片,从而减少数据传输量,节省用户流量。这个框架的核心特性是其高保真和高压缩比,意味着在压缩图片的同时,...
【标题】:“Java聊天室之传送图片文字等功能的实现” 这个标题揭示了我们将要探讨的是一个基于Java开发的聊天室应用程序,它具有发送文本消息以及传输图像等多媒体功能。在Java编程领域,创建一个聊天室涉及到网络...
理解通信协议传输过程中的序列化和反序列化机制 基于框架的RPC通信技术 WebService/ApacheCXF RMI/Spring RMI Hession 传统RPC技术在大型分布式架构下面临的问题 分布式架构下的RPC解决方案 Zookeeper ...
- **压缩上传**:在前端对图片进行压缩,减小传输体积,提高上传效率。 5. **异常处理**: - 前后端都需要有完善的异常处理机制,如网络中断、服务器错误等,确保用户体验和数据完整性。 总的来说,"java批量...
这个“图片预览程序模版_java前后端交互.zip”文件似乎提供了一个完整的解决方案,它包含了Java后端与前端的交互逻辑,用于实现图片的高效、安全预览。 首先,我们要理解Java后端的角色。在图片预览系统中,后端...
在"java用poi转ppt为图片"的场景下,我们可以利用POI的API将PPT文件的每一页转换为图像。这样做的好处在于,可以方便地在网络上传输或嵌入到其他不支持PPT格式的应用中。转换过程通常涉及打开PPT文件,遍历每一页...
首先,我们要明白图片上传是Web应用中常见的一种功能,它涉及到前端交互、文件传输协议以及后端处理等多个方面。 1. **SWFUpload 插件**: SWFUpload 是一个JavaScript库,通过Flash技术提供了一种优雅的文件上传...
7. **图片压缩**:为了节省存储空间和减少传输时间,通常会在上传大图片前对其进行压缩。Java有许多库可以处理图像压缩,如ImageIO、OpenCV或者第三方库如Guava的Images类。 8. **错误处理和重试机制**:由于网络...
本文主要介绍了Java实现的简单图片上传功能,通过实例形式分析了Java图片传输相关的检验、传输、接收等操作技巧。 首先,文章介绍了图片上传的需求和目的,并提供了Java实现的解决方案。该解决方案主要包括客户端和...
总之,这个项目提供了一个全面的图像处理解决方案,涵盖了从基本的图像操作到高级的图像处理技术,并确保了代码的质量和功能的完整性。无论是开发者想要学习Java图像处理,还是需要在实际项目中应用这些功能,这个...