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

这几天研究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 结果都是一样的.


图片点击可在新窗口打开查看此主题相关图片如下:

      

      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通常的写法一样了.不需要做特殊处理了


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Net手机图片上传是指使用手机通过网络将图片上传服务器或互联网上的一种操作。这种方式可以让用户将手机中的照片、截图或其他类型的图片传到指定网站、社交媒体平台或云存储服务中。 要实现Net手机图片上传,首先需要打开手机上的网络连接,确保手机能够访问互联网。然后打开图片所在的应用程序,如相机、图库或社交媒体应用等,并选择要上传的图片。 接下来,用户需要选择上传图片的目标位置。可以是服务器上的指定文件夹、个人相册、云存储服务中的特定文件夹等。在选择目标位置后,用户需要点击上传按钮或选择相应的上传选项,将选择的图片传送到服务器。 上传图片的速度取决于网络连接的稳定性和网速。如果网络连接良好,上传过程将会比较快速。上传的过程中,手机会将选中的图片通过网络传输到服务器上,服务器会接收并存储这些图片。一旦图片上传完成,用户就可以在相应的网站、应用程序或云存储服务中查看、编辑和分享这些图片。 Net手机图片上传的实现有许多方式,通常使用的是HTTP或FTP协议进行数据传输。同时,上传图片的过程也需要保证数据的安全性,防止被未经授权的人访问或篡改。为此,可以采用加密传输、访问权限控制等安全机制来保障用户的图片信息。 总而言之,Net手机图片上传是一种方便快捷的方式,让用户能够轻松地将手机中的图片传到网络上。这种操作在日常生活中的各个方面都得到了广泛应用,为人们提供了方便的图片分享、备份和展示方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值