- 浏览: 96013 次
- 性别:
文章分类
- 全部博客 (151)
- Spring-MVC学习 (5)
- 偶然间发现 (2)
- easyUi学习 (7)
- web项目相关技术 (4)
- java学习 (26)
- webService (4)
- 一些工具的安装使用 (7)
- js学习 (20)
- Sping学习 (7)
- mybatis学习 (5)
- 定时器 (4)
- oracle (2)
- JSP学习 (6)
- HTML一些标签 (1)
- web服务 (2)
- 偶尔得到的地址 (2)
- 常用的代码记录 (2)
- 设计模式 (1)
- java常使用的开源API (1)
- maven (1)
- Socket (1)
- nginx (2)
- jquery (3)
- poi (2)
- 写过的工具类 (19)
- 微信开发 (2)
- mysql (1)
- freemarker (2)
- ftp (1)
- 用过的软件 (1)
- jconsole (1)
- log4j (1)
- redis的简单入门使用 java调用redis (0)
- redis的使用 (2)
- 生活相关的 (1)
最新评论
-
chokee:
...
easyUi学习之开启行编辑模式增删改操作 -
lijie_insist:
就是有的界面需要显示天气啊!所以你要调用天气的接口啊 因为很多 ...
免费的天气接口的一个demo -
zhglance:
请问这是干什么用的呢?
免费的天气接口的一个demo
淘宝里面的html用base64转换图片,不知道为什么,不过看起来好像很美好,给个地址让大家玩玩,谁要有更全面的介绍也留下言
http://www.rssria.com/blogx/wp-content/uploads/2010/05/imgbase64/UML.html
Java代码
代码
采纳:http://www.cnblogs.com/mofish/archive/2010/11/26/1889126.html
// 下面是自己提供的图片上传接口 对于图片的上传可以用java自带的流上传 我这是因为直接从写的项目中拷下 没来得及去修改
//接口 使用的fastdfs的jar包
//接口的实现类
http://www.rssria.com/blogx/wp-content/uploads/2010/05/imgbase64/UML.html
Java代码
代码
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 Base64Image { public static void main(String[] args) { // 测试从Base64编码转换为图片文件 String strImg = "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"; GenerateImage(strImg, "D:\\wangyc.jpg"); // 测试从图片文件转换为Base64编码 System.out.println(GetImageStr("d:\\wangyc.jpg")); } public static String GetImageStr(String imgFilePath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 byte[] data = null; // 读取图片字节数组 try { InputStream in = new FileInputStream(imgFilePath); 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, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片 if (imgStr == null) // 图像数据为空 return false; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解码 byte[] bytes = decoder.decodeBuffer(imgStr); for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 调整异常数据 bytes[i] += 256; } } // 生成jpeg图片 OutputStream out = new FileOutputStream(imgFilePath); out.write(bytes); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } }
采纳:http://www.cnblogs.com/mofish/archive/2010/11/26/1889126.html
// 下面是自己提供的图片上传接口 对于图片的上传可以用java自带的流上传 我这是因为直接从写的项目中拷下 没来得及去修改
/** * 上传图片 * @param request * @param response * @return * @throws UnsupportedEncodingException */ @SuppressWarnings("unused") @RequestMapping(value="/img/uploadAuthImg",method={RequestMethod.GET,RequestMethod.POST}) public String uploadAuth(@PathVariable int uid,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{ response.setContentType("text/plain;charset=utf-8"); request.setCharacterEncoding("UTF-8"); if (logger.isInfoEnabled()) { logger.info("--UploadImgController.uploadAuth--->start"); } JSONObject json = new JSONObject(); Map<String, String> param = this.paramToMap(request); if (logger.isDebugEnabled()) { logger.debug("--UploadImgController.uploadAuth-parameter->" + param); } try{ // 处理业务逻辑后再掉统一用户中心 String brandList = this.uploadAuthImg(param); // 业务逻辑处理 logger.info("业务逻辑返回参数:"+brandList); //解析上传的参数 JSONObject jo = JSONObject.fromObject(brandList); if(StringUtils.isEmpty(brandList)){ json.put(ResultKeyConstant.DATA, ""); json.put(ResultKeyConstant.ERROR_CODE, ErrorCodeConstant.COMMON_UNKNOWN_ERROR); // 系统内部错误 json.put(ResultKeyConstant.ERROR_MESSAGE, "上传图片错误"); }else if(jo.get("state")!=null&&jo.get("state").toString().equals("1")){ json.put(ResultKeyConstant.DATA, brandList); json.put(ResultKeyConstant.ERROR_CODE, ErrorCodeConstant.COMMON_UNKNOWN_ERROR); // 系统内部错误 json.put(ResultKeyConstant.ERROR_MESSAGE, jo.get("msg")); } else{ //访问统一用户中心 提供认证信息 Map<String,Object> memberMap = new HashMap<String,Object>(); memberMap.put("user_name",this.getParamValue(param.get("param"), "user_name")); memberMap.put("member_id",this.getParamValue(param.get("param"), "mid")); String fullPath = jo.get("fullPath")==null?"":jo.get("fullPath").toString(); memberMap.put("identify_img",fullPath); memberMap.put("identify",this.getParamValue(param.get("param"), "identify")); memberMap.put("biz_key",3); logger.info("解析成功后得到的参数:"+"param_json="+JSONObject.fromObject(memberMap).toString()); } }catch(Exception e){ logger.error(e); json.put(ResultKeyConstant.DATA, ""); json.put(ResultKeyConstant.ERROR_CODE, ErrorCodeConstant.COMMON_UNKNOWN_ERROR);// 系统内部错误 json.put(ResultKeyConstant.ERROR_MESSAGE, messageService.getMessage(ErrorCodeConstant.COMMON_UNKNOWN_ERROR)); } return null; } public Map<String, String> paramToMap(HttpServletRequest request) { HashMap<String, String> map = new HashMap<String, String>(); Map<String, String[]> m = request.getParameterMap(); for (Entry<String, String[]> entry : m.entrySet()) { map.put(entry.getKey().toString(), entry.getValue()[0]); } return map; } public String uploadAuthImg(Map<String, String> patam){ Map<Object, Object> lmap = new HashMap<Object, Object>(); String result = null; try { if (logger.isInfoEnabled()) { logger.info("--AreaServiceV100Impl.uploadAuthImg---parameter->" + patam); } String param = patam.get("param"); if(StringUtil.hasText(param)){ JSONObject json = JSONObject.fromObject(param); String name = json.get("imgName") == null ? "" : StringUtil.trim(json.get("imgName")); String mid = json.get("mid") == null ? "" : StringUtil.trim(json.get("mid")); String imgData = json.get("imgData") == null ? null : json.get("imgData").toString();/// 图片数据 byte[] imgbuffer = new BASE64Decoder().decodeBuffer(imgData); // 对android传过来的图片字符串进行解码 if (name == null || "".equals(name)) { lmap.put("state", "1"); lmap.put("msg", "图片名称为空!"); return JSONObject.fromObject(lmap, ControllerUtils.convertJsonConfigDate("yyyy-MM-dd HH:mm:ss")).toString(); } // 拼接上传路径 String extName = "";// 原图片的名称(如:12 不要后面的后缀名) if (name.lastIndexOf(".") >= 0) { extName = name.substring(name.lastIndexOf(".") + 1); } InputStream sbs = new ByteArrayInputStream(imgbuffer); String domain = "http://127.0.0.1"; //自定义图片服务器 String masterFileId = null; try { masterFileId = fastDFSStorageManager.uploadResource(extName, IOUtils.toByteArray(sbs), null); //使用fastdfs-1.2-jar.jar这个jar包 } catch (Exception e) { logger.error("上传原始图片失败!"); lmap.put("state", "1");// 上传失败 lmap.put("msg", "对不起,上传图片失败!"); return null; } lmap.put("fullPath", domain + masterFileId);// 访问全路径 lmap.put("state", "0");// 上传成功 lmap.put("msg", "上传图片成功!"); lmap.put("img", masterFileId); } else { // 图片类型错误 lmap.put("state", "1"); lmap.put("msg", "对不起,您上传的图片类型错误!"); } result = JSONObject.fromObject(lmap, ControllerUtils.convertJsonConfigDate("yyyy-MM-dd HH:mm:ss")).toString(); if (logger.isInfoEnabled()) { logger.info("--AreaServiceV100Impl.getAreasByLevel---result-->" + result); } }catch(Exception e){ logger.error(e); } return result; }
//接口 使用的fastdfs的jar包
package com.mes.fastdfs; import java.util.Map; /** * 文件存储管理工具 * @author Administrator * */ public interface FastDFSStorageManager { /** * 上传文件 * @param extension 扩展名 * @param resourceData 二进制数据 * @param mataData 元数据 * @return * @throws Exception */ String uploadResource(final String extension, final byte[] resourceData, final Map<String, String> mataData) throws Exception ; /** * 上传从文件 * @param masterFileId 主文件ID * @param prefixName 后缀名 * @param extension 文件扩展名 * @param resourceData 二进制数据 * @param mataData 元数据 * @return * @throws Exception */ String uploadResourceBySlave(final String masterFileId, final String prefixName, final String extension, final byte[] resourceData, final Map<String, String> mataData) throws Exception; /** * 根据上传路径设置元数据 * @param path 路径 * @param mataData 元数据 * @param isOverwrite 是否覆盖原有数据 * @return * @throws Exception */ boolean setResourceMataDataByPath(final String path, final Map<String, String> mataData, boolean isOverwrite) throws Exception ; /** * 获取元数据信息 * @param path fastdfs路径 * @return * @throws Exception */ Map<String, String> queryMetaDataByPath(final String path) throws Exception ; /** * 删除 * @param path * @throws Exception */ boolean deleteResourceByPath(final String path) throws Exception ; /** * 下载 * @param path 文件ID * @return * @throws Exception */ byte[] downloadByPath(final String path) throws Exception ; }
//接口的实现类
package com.mes.fastdfs; import java.util.HashMap; import java.util.Map; import org.csource.common.NameValuePair; import org.csource.fastdfs.ProtoCommon; import org.csource.fastdfs.StorageClient1; import org.csource.fastdfs.StorageServer; import org.csource.fastdfs.TrackerClient; import org.csource.fastdfs.TrackerServer; /** * fastDFS管理工具 * * @author Administrator * */ public class FastDFSStorageManagerImpl implements FastDFSStorageManager { private StorageClientTemplate storageClientTemplate; @Override public String uploadResource(final String extension, final byte[] resourceData, final Map<String, String> mataData) throws Exception { return storageClientTemplate.execute(new AbstractStorageClientReturnedCallback<String>() { @Override public String doInStorageClient(TrackerClient trackerClient, TrackerServer trackerServer, StorageServer storageServer) throws Exception { StorageClient1 storageClinet = new StorageClient1(trackerServer, storageServer); NameValuePair[] nameValuePairs = null; if ((mataData != null) && (mataData.size() > 0)) { nameValuePairs = new NameValuePair[mataData.size()]; int i = 0; for (Map.Entry<String, String> entry : mataData.entrySet()) { nameValuePairs[i++] = new NameValuePair(entry.getKey(), entry.getValue()); } } return storageClinet.upload_file1(resourceData, extension, nameValuePairs); } }); } @Override public Map<String, String> queryMetaDataByPath(final String path) throws Exception { return storageClientTemplate.execute(new AbstractStorageClientReturnedCallback<Map<String, String>>() { @Override public Map<String, String> doInStorageClient(TrackerClient trackerClient, TrackerServer trackerServer, StorageServer storageServer) throws Exception { StorageClient1 storageClinet = new StorageClient1(trackerServer, storageServer); NameValuePair[] nameValuePairs = storageClinet.get_metadata1(path); Map<String, String> metaData = new HashMap<String, String>(); if ((nameValuePairs != null) && (nameValuePairs.length > 0)) { for (NameValuePair entry : nameValuePairs) { metaData.put(entry.getName(), entry.getValue()); } } return metaData; } }); } @Override public boolean deleteResourceByPath(final String path) throws Exception { return storageClientTemplate.execute(new AbstractStorageClientReturnedCallback<Boolean>(){ @Override public Boolean doInStorageClient(TrackerClient trackerClient, TrackerServer trackerServer, StorageServer storageServer) throws Exception { StorageClient1 storageClinet = new StorageClient1(trackerServer, storageServer); return storageClinet.delete_file1(path) == 0; } }) ; } public StorageClientTemplate getStorageClientTemplate() { return storageClientTemplate; } public void setStorageClientTemplate(StorageClientTemplate storageClientTemplate) { this.storageClientTemplate = storageClientTemplate; } /* (non-Javadoc) * @see com.mes.fastdfs.FastDFSStorageManager#uploadResourceBySlave(java.lang.String, java.lang.String, byte[], java.util.Map) */ @Override public String uploadResourceBySlave(final String masterFileId, final String prefixName, final String extension, final byte[] resourceData, final Map<String, String> mataData) throws Exception { return storageClientTemplate.execute(new AbstractStorageClientReturnedCallback<String>() { @Override public String doInStorageClient(TrackerClient trackerClient, TrackerServer trackerServer, StorageServer storageServer) throws Exception { StorageClient1 storageClinet = new StorageClient1(trackerServer, storageServer); NameValuePair[] nameValuePairs = null; if ((mataData != null) && (mataData.size() > 0)) { nameValuePairs = new NameValuePair[mataData.size()]; int i = 0; for (Map.Entry<String, String> entry : mataData.entrySet()) { nameValuePairs[i++] = new NameValuePair(entry.getKey(), entry.getValue()); } } return storageClinet.upload_file1(masterFileId, prefixName, resourceData, extension, nameValuePairs) ; } }); } @Override public boolean setResourceMataDataByPath(final String path, final Map<String, String> mataData, final boolean isOverwrite) throws Exception { return storageClientTemplate.execute(new AbstractStorageClientReturnedCallback<Boolean>() { @Override public Boolean doInStorageClient(TrackerClient trackerClient, TrackerServer trackerServer, StorageServer storageServer) throws Exception { StorageClient1 storageClinet = new StorageClient1(trackerServer, storageServer); NameValuePair[] nameValuePairs = null; if ((mataData != null) && (mataData.size() > 0)) { nameValuePairs = new NameValuePair[mataData.size()]; int i = 0; for (Map.Entry<String, String> entry : mataData.entrySet()) { nameValuePairs[i++] = new NameValuePair(entry.getKey(), entry.getValue()); } } return storageClinet.set_metadata1(path, nameValuePairs, isOverwrite ? ProtoCommon.STORAGE_SET_METADATA_FLAG_OVERWRITE: ProtoCommon.STORAGE_SET_METADATA_FLAG_MERGE) == 0; } }); } @Override public byte[] downloadByPath(final String path) throws Exception { return storageClientTemplate.execute(new AbstractStorageClientReturnedByteCallback(){ @Override public byte[] doInStorageClient(TrackerClient trackerClient, TrackerServer trackerServer, StorageServer storageServer) throws Exception { StorageClient1 storageClinet = new StorageClient1(trackerServer, storageServer); return storageClinet.download_file1(path); } }) ; } }
发表评论
-
java生成水印
2017-02-20 11:28 524package com.zte.club.util; i ... -
获取随机码
2016-09-26 12:00 475/*** * 获取指定长度的随机验证码 * @pa ... -
导入数据脚本
2016-09-18 11:01 370-- mysql的脚本 把一个表的数据插入到另一个表 如果数据 ... -
物理分页相关与加载到底部
2016-08-18 10:32 288Integer pageSize = json.get(&qu ... -
java获取项目的路径以及请求的路径
2016-07-15 16:01 742/** *获取项目resource下面的config文件 ... -
java调用http接口以及提供接口
2016-07-08 17:20 664******************************* ... -
获取request请求的ip地址
2016-07-05 10:25 808// 获取访问的ip地址 public static St ... -
java web常用到的ajax分页思路
2016-05-13 16:04 1862有时候其实用同步的分页可以在url上记录页数 这样把链接分享给 ... -
excel的操作相关的---生成excell
2016-01-12 21:16 427/* * Decompiled with CFR 0_10 ... -
word的操作
2016-01-07 16:15 341// word的操作其中有对于那个阿拉伯到大写数字的操作 p ... -
邮件和短信的发送
2016-01-07 15:59 462package com.mes.util; import ... -
file文件的拷贝 以及ftp的下载
2016-01-07 15:54 473package com.zte.xh.fund.util; ... -
excel的操作相关的---读取excell内容
2016-01-07 15:47 448package com.zte.xh.fund.util; ... -
关于找回密码
2015-08-10 09:46 353原文:http://www.cnblogs.com/zyw-2 ... -
匹配字符串中的连续多少位数字
2015-08-07 08:53 493package com.zte.xh.fund.util; ... -
比对的一个工具类
2015-07-24 00:27 355package study.corejava.string; ... -
操作的File的一个小工具
2015-07-17 14:57 336// 保存下,都是对文件上传时遇到的一些问题,保存了以后用的时 ... -
java生成验证码图片
2015-07-06 09:39 682参考了些网上代码,自己写了一个验证 第一:写一个图片生成类 ...
相关推荐
sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及...
在IT领域,Base64是一种广泛使用的数据编码方法,它将任意二进制数据转换成ASCII字符序列,以便在网络上传输或存储。...理解其工作原理并掌握如何使用Base64Decoder,对进行相关开发工作具有重要意义。
BASE64Decoder包 加密代码: 加密前字符串:String key="mykey"; byte[] bt = key.getBytes(); 加密后字符串:String newKey=(new BASE64Encoder()).encodeBuffer(bt); 解密代码: 加密后的字符串:String newkey=...
`java.util.Base64.Decoder`接口提供了与`sun.misc.BASE64Decoder`类似的功能,可以用来解码Base64编码的字符串。例如,使用`java.util.Base64.Decoder`的解码方法如下: ```java import java.util.Base64; public...
例如,可以使用`java.util.Base64.Decoder`接口的`decode(String encoded)`方法替代`BASE64Decoder`的功能。 以下是使用`java.util.Base64`进行解码的示例代码: ```java import java.util.Base64; public class ...
在MyEclipse中编写Java代码时,用到了BASE64Decoder,import sun.misc.BASE64Decoder;可是Eclipse提示: Access restriction: The type BASE64Decoder is not accessible due to restriction on required library...
总的来说,尽管`sun.misc.BASE64Decoder`和`BASE64Encoder`在某些老项目中可能存在,但现代Java开发应尽量避免依赖这些类,转而使用标准的`java.util.Base64`模块,以确保代码的稳定性和可维护性。对于那些仍然需要...
`Base64.Encoder`接口代表Base64编码器,而`Base64.Decoder`接口代表Base64解码器。你可以通过`Base64.getEncoder()`和`Base64.getDecoder()`获取默认的编码器和解码器实例。例如: ```java import java.util.Base...
`Base64Decoder`提供了解码Base64编码的接口,但它的使用存在一定的限制,因为`sun.misc`包不是Java官方API的一部分,这意味着它可能会在未来的Java版本中发生变化或者被移除,因此依赖这个包的代码可能在不同JVM上...
在Java中,`BASE64Encoder`和`BASE64Decoder`是两个核心类,分别用于对数据进行BASE64编码和解码。 `BASE64Encoder`类: 这个类在Java SDK中位于`javax.crypto`包下,主要负责将字节序列(byte array)转换为BASE...
BASE64Decoder.jar 是一个Java库,主要用于对Base64编码的数据进行解码。Base64是一种用于在电子邮件和其他不支持二进制传输的环境中传递数据的编码方式。它将任意二进制数据转换为可打印的ASCII字符,通常用在加密...
"使用说明.txt" 文件很可能包含了关于如何使用Base64Decoder.jar的详细步骤。通常,这样的说明文档会涵盖以下内容: 1. **安装**:可能会提到如何将JAR文件添加到Java运行环境中,或者如何通过命令行运行这个程序。...
鉴于`sun.misc`包的非公开性质,Java 8引入了`java.util.Base64`类作为官方的BASE64编码和解码工具,提供了更安全和稳定的接口。例如,`Base64.getDecoder().decode(encoded)`可以替代`BASE64Decoder`,`Base64.get...
此外,Java 9以后,sun.misc包被标记为废弃,推荐使用Java标准库中的`java.util.Base64`类,它提供了更稳定且功能丰富的接口来处理BASE64编码。 总之,"sun的BASE64Decoder"是一个方便的工具,用于在Java环境中解码...
一、问题描述 最近项目实验发现导入工具程序后项目有错,查看发现sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用,找不到相应的类。 二、原因分析 ...提供了sun.misc.BASE64Decoder.jar包,自行下载。
sun.misc.BASE64Decoder.jar是一款针对Java平台的Base64解码工具,由Sun Microsystems公司(现已被Oracle收购)提供,它包含了对Base64编码字符串进行解码的功能。 Base64编码的基本原理是将每3个8位字节的数据转换...
综上所述,"BASE64Decoder"的JAR文件提供了在Java环境中解码Base64编码数据的能力,这对于处理网络传输或存储的Base64编码内容至关重要。如果你的项目需要与Base64编码的数据打交道,这个库将是一个非常有用的工具。
这个压缩包文件"base64_sun.misc.BASE64Decoder.zip"包含了与Base64解码相关的资源,特别是`sun.misc.BASE64Decoder.jar`,这是一个Java类库,提供了对Base64编码数据进行解码的功能。 Base64编码源于电子邮件系统...