iphone客户端上传图片到服务器
本文转载至 http://blog.sina.com.cn/s/blog_4c70701801012inq.html
上传图片说明
1. 关键字说明
String pictureFileName; //上传图片名
String pictureContentType; //上传图片类型
String pictureContent; //上传图片的字符串形式
2. 上传流程
3. 代码
3.1 图片内容从字符串形式转换成二进制形式
public static byte[] hex2byte(String str) { // 字符串转二进制 if (str == null) return null; str = str.trim(); str = str.replace(" ", ""); int len = str.length(); if (len == 0 || len % 2 == 1) return null; byte[] b = new byte[len / 2]; try { for (int i = 0; i < str.length(); i += 2) { b[i / 2] = (byte) Integer .decode("0x" + str.substring(i, i + 2)).intValue(); } return b; } catch (Exception e) { return null; } } |
3.2 将二进制流写入文件中
public static File fileBuild(String pictureContent){ File file = new File(F_NAME); //存放二进制内容的指定文件 //去除前后两个尖括号 pictureContent = pictureContent.substring(1, pictureContent.length()-1); try{ if(!file.exists()){ file.createNewFile(); } // 将字符串转换成二进制,用于显示图片 int nRead = 0; byte[] imgByte = StrToByte.hex2byte(pictureContent); byte[] b = new byte[1024]; InputStream in = new ByteArrayInputStream( imgByte ); FileOutputStream output = new FileOutputStream(F_NAME,false); while( ( nRead = in.read(b) ) != -1 ){ output.write( b, 0, nRead ); } output.flush(); output.close(); in.close(); }catch(Exception e){ e.printStackTrace(); } return file; } |
3.3 将二进制流转换成图片并存放在相应位置
private static final int BUFFER_SIZE=16*1024; private static final String F_NAME ="D:\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp1\\work\\Catalina\\localhost\\jy\\upload_7d68c7b2_13633574de8__8000_00000000.tmp"; //封装文件对象 private static void copy(File src,File dst){ InputStream in=null; OutputStream out=null; try { in=new BufferedInputStream(new FileInputStream(src),BUFFER_SIZE); out=new BufferedOutputStream(new FileOutputStream(dst),BUFFER_SIZE); byte[] buffer=new byte[BUFFER_SIZE]; int len=0; while((len=in.read(buffer))>0){ out.write(buffer, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally{ if(null!=in){ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if(null!=out){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static String fileexecute(int id,File picture,String savepath,String filename)throws Exception{ String dstPath=ServletActionContext.getServletContext().getRealPath(savepath)+"\\"+id; File mdFile=new File(dstPath); mdFile.mkdir(); File dstFile=new File(dstPath+"\\"+filename); copy(picture,dstFile); return savepath.substring(1)+"/"+id+"/"+filename; } |
iphone客户端上传图片到服务器的更多相关文章
- 通过android 客户端上传图片到服务器
昨天,(在我的上一篇博客中)写了通过浏览器上传图片到服务器(php),今天将这个功能付诸实践.(还完善了服务端的代码) 不试不知道,原来通过android 向服务端发送图片还真是挺麻烦的一件事. 上传 ...
- 客户端挂载NFS服务器中的共享目录(用户后台上传图片与前台上传图片放在同一个服务器上)
服务器端使用showmount命令查询NFS的共享状态 # showmount -e //默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错 # showmount -a //显示已经与客 ...
- Wcf for wp8 上传图片到服务器,将图片名字插入数据库字段(五)
环境:.NET Framework 3.5 服务: IIS EXpress托管 WCF服务程序 配置:Web.config <!--<connectionStrings> <a ...
- android 上传图片到服务器Tomcat(Struts2)
在做android开发的时候,有时你会用到图片的上传功能,在我的android项目中,我是选中图片,点击上传多张图片 android客户端上传图片部分的代码如下: package com.exampl ...
- Java乔晓松-android中上传图片到服务器Tomcat(Struts2)
在做android开发的时候,有时你会用到图片的上传功能,在我的android项目中,我是选中图片,点击上传多张图片 android客户端上传图片部分的代码如下: package com.exampl ...
- 如何搭建一个WEB服务器项目(六)—— 上传图片至服务器
上传图片(用户头像)至服务器 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验.先谢谢 ...
- WPF上传图片到服务器文件夹
1.前端用ListBox加载显示多张图片 1 <ListBox Name="lbHeadImages" Grid.Row="1" ScrollViewer ...
- 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...
- Portable Basemap Server:多数据源多客户端的底图服务器
Portable Basemap Server:多数据源多客户端的底图服务器 [poll id=”1″]2014.3.8更新v3.1~在线切片转换为MBTiles时,增加RecreateEmptyCa ...
随机推荐
- Python 自用代码(拆分txt文件)
现有一个28G的txt文件,里面每一行是一个分词过的专利全文文档,一共370多万行.我需要把它按每五万行为单位做成一个json文件,格式大致如下: [{"id":"100 ...
- 转: Linux与JVM的内存关系分析
Linux与JVM的内存关系分析 引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使 ...
- APK大小的瘦身的总结:
首先是看了博客:http://blog.csdn.net/sw950729/article/details/64919051 时.认为大神我就是马云飞写的非常有道理.全部自己就自己写了一遍.长话短说: ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面快速入门 TC3
右击添加一个PLC项,注意不要用中文 右击VISUs,添加一个视图对象 在POUs中打开MAIN,然后添加代码(定义了一个BOOL和一个INT类型变量) 工具箱中得到一个textfield ...
- HTML 中图片的隐藏与显示
<html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Co ...
- oracle 创建一个用户,并且设定只能访问指定的对象
出处:http://www.cnblogs.com/BetterWF/archive/2012/07/03/2574416.html 今天在开发接口时候,需要给接口开发公司提供一个ORACLE 用户, ...
- 【MyBatis学习02】走进MyBatis的世界
mybatis是个持久层的框架,用来执行数据库操作的,无外乎增删改查,上一节对mybatis有了宏观上的了解后,这一篇博客主要通过一个小示例来入门mybatis,先看一下要写的示例需求: 根据用户id ...
- radiusd cisco限速问题
http://puck.nether.net/pipermail/cisco-bba/2011-February/001349.html
- 关于行内元素之间有空隙的问题,例如span与input之间
问题如图: 想要的是下面的效果,而却出现上面的效果,解决方法如下: 对于行元素span或者input来说 很多人会用inline-block来显示他们,但是往往发现 中间会留一段小空隙 , 其实这个 ...
- genymotion启动黑屏的原因及临时解决方法
解决办法 好像是要激活网络,具体原因不知道!!! sudo ifconfig vboxnet0 up 下面好像更好使一点 sudo ip link set dev vboxnet0 up