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 ...
随机推荐
- 按照vue文档使用JavaScript钩子但是却不能执行动画?
大家刚入VUE肯定是先去阅读文档, 在 进入/离开 & 列表过渡 这一章节有一小节 --------- JavaScript钩子 详情见vue文档: https://cn.vuejs.or ...
- Android基础新手教程——4.1.3 Activity登堂入室
Android基础新手教程--4.1.3 Activity登堂入室 标签(空格分隔): Android基础新手教程 本节引言: 好的,在学习了两节的Activity后相信大家已经知道怎样去使用Acti ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)人机界面Paintbuffer Overflow怎么办
当在界面上绘制了太多元素时,点击运行会在左上角弹出对话框提示内容容量不够 在英文版的说明中,点击Visualization Manager就可以进行设置 更多教学视频和资料下载,欢迎关注以 ...
- grid 布局一 固定宽度+自适应宽度
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- 《深入PHP:面向对象、模式与实践》(一)
第1章 PHP:设计与管理 本章主要介绍了本书有哪些内容. 第2章 PHP与对象 本章总结了PHP面向对象特性的发展过程,逐步介绍对象的概念. PHP/FI:支持变量.关联数组和函数.没有对象. ...
- PHP多线程处理问题
近日工作中涉及到项目同时处理多个线程问题时,在网上找到了PHP的pthreads扩展以及curl_multi_init函数,具体如下: 一 .windows下安装php真正的多线程扩展pthreads ...
- 使用Google Https搜索
一. 将浏览器Google的默认搜索使用https 1. IE浏览器 进入注册表搜索"google.com"将搜索替换成https://www.google.com.hk 2. F ...
- 趣味 console.log
第三方趣味console,比我的强太多了,使用这个吧: https://github.com/yy0608/console 我的console效果图: ;(function (global, fact ...
- NHibernate Transformers.AliasToEntityMap 返回Hashtable
string query = "select a.CustomerName as CustomerName, b.ProductName as ProductName from Custom ...
- 【转】jQuery.extend 函数详解
原文地址:http://www.cnblogs.com/RascallySnake/archive/2010/05/07/1729563.html JQuery的extend扩展方法: Jq ...