各位大虾:
本人利用SurfaceView和Camera做了一个拍照并上传图片的程序,上传利用的是java.net中的socket机制,现发现上传到服务器的图片大小是正确的,但就是图片打不开,好像不是有效的JPEG格式,不过在模拟器中上传后是正确的。公司催得急,请各位大虾不吝赐教~~~~~~~~~~~~
若能解决问题,当另开贴继续送分~~~~~~
本人利用SurfaceView和Camera做了一个拍照并上传图片的程序,上传利用的是java.net中的socket机制,现发现上传到服务器的图片大小是正确的,但就是图片打不开,好像不是有效的JPEG格式,不过在模拟器中上传后是正确的。公司催得急,请各位大虾不吝赐教~~~~~~~~~~~~
若能解决问题,当另开贴继续送分~~~~~~
默认大小好象是有8M,
设置小点数据不容易丢失
Socket s = null;
try{
Log.v("socket", "connecting");
s = new Socket("120.195.64.171",21);
Log.v("socket", "connected");
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s.getInputStream());
dos.writeInt(imageData.length); //发送文件大小
dos.flush();
dis.readUTF(); //在取得响应信息后再发送图片,防止输出流信息混乱
dos.write(imageData); //发送图片
dos.flush();
Log.v("socket", "wrote:" + imageData.length);
......
请千万指点!!
读写文件流的时候,使用的byte数组的指定大小不是文件的实际大小的整数倍的时候发生了错误。
不信你可以将byte数组长度指定成1试一试我说的对不对。
都说到这个分上了还不明白具体解决方法?这种问题对于n多程序员都很模糊