快速业务通道

J2ME实现手机图片上传的一些小经验 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

J2ME实现手机图片上传的一些小经验

时间:2011-02-08

这几天研究j2me图片文件上传,手机上用FileConnection浏览文件夹,读取图片文件,

然后提交到服务器上的http接口.

首先采用的是 HttpConnection ,发送数据(构建文件上传方式也一样), 发现数据都被采用了 chunked 编码,

服务端什么内容都获取不到( 这里遇到一个奇怪的问题,用我本机做服务端,即使chunked编码,也能够完整的获取到数据),

chunked只有在数据超过2016个字节的时候才会产生.

于是上网搜集资料,发现mingjava的colala实例采用的是将数据切分为 1700 字节大小,循环上传,直到上传完毕,

(这里不知道mingjava是要做进度故意这么做,还是当时也遇到chunked编码的问题才这么做的. hh )

还有网上讨论的 http/1.1 http/1.0的问题,好像也是错误的.因为用socket数据,设置http/1.1 http/1.0 结果都是一样的.

J2ME实现手机图片上传的一些小经验(2)

时间:2011-02-08

conn = (HttpConnection) Connector.open(server,Connector.READ_WRITE,true);       conn.setRequestProperty("Content-Type","application/octet-stream");       conn.setRequestProperty("Content-Length", String.valueOf(data.length));       conn.setRequestProperty("Connection","Keep-Alive");       conn.setRequestProperty("Connection","close");              //conn.setRequestProperty("User-Agent", "J2me/Client");       conn.setRequestMethod(HttpConnection.POST);       os = conn.openOutputStream();       os.write(data);

所以只好采用socket,模拟http 协议,上传文件

StringBuffer sb=new StringBuffer(); sb.append("POST ");sb.append(URL.query);sb.append(" HTTP/1.1\r\n"); sb.append("Host: ");sb.append(URL.host);sb.append("\r\n"); sb.append("Content-type: application/octet-stream\r\n"); sb.append("Content-Length: ");sb.append(data.length);sb.append("\r\n"); sb.append("Connection: close\r\n\r\n"); sc = (SocketConnection)Connector.open("socket://"+URL.host+":"+URL.port); is = sc.openInputStream(); os = sc.openOutputStream(); os.write(sb.toString().getBytes()); os.write(data);

经过测试成功,构建文件上传数据流格式也没有问题.... 这样服务端的程序就和web通常的写法一样了.不需要做特殊处理了。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号