package com.jqyd.utils; import java.io.File; import java.io.OutputStream; import java.io.PushbackInputStream; import java.io.RandomAccessFile; import java.net.Socket; import android.content.Context; import android.os.Bundle; import android.util.Log; public class UpSocketFile { private Context context; public UpSocketFile(Context context){ this.context = context; } public String packageUp(String sort,String content,String url,String imagepath,int port){ Log.i("packageUp", "------------packageUp---------------"); String result = "1"; File uploadFile = new File(imagepath); result = uploadFile(sort,uploadFile,content,url,port); return result; } /** * 上传文件 * @param uploadFile */ private String uploadFile(String sort,final File uploadFile,String content,String url,int port) { //上传结果0、成功1、失败 String result = "1"; try { String head = "Content-Length="+ uploadFile.length() + ";filename="+ uploadFile.getName() + ";sourceid="+ ("")+content+";"+sort+"\r\n"; Log.i("socket", "请求socket连接……"); //Socket socket = new Socket("www.jqgj.com.cn", 9091); Socket socket = new Socket(url, port); OutputStream outStream = socket.getOutputStream(); outStream.write(head.getBytes()); PushbackInputStream inStream = new PushbackInputStream(socket.getInputStream()); String response = StreamTool.readLine(inStream); Log.i("Socket", "***********"+response); String[] items = response.split(";"); String responseid = items[0].substring(items[0].indexOf("=")+1); String position = items[1].substring(items[1].indexOf("=")+1); RandomAccessFile fileOutStream = new RandomAccessFile(uploadFile, "r"); fileOutStream.seek(Integer.valueOf(position)); byte[] buffer = new byte[1024]; int len = -1; int length = Integer.valueOf(position); while( (len = fileOutStream.read(buffer)) != -1){ outStream.write(buffer, 0, len); length += len; } fileOutStream.close(); outStream.close(); inStream.close(); socket.close(); if(length==uploadFile.length()){ result = "0"; } } catch (Exception e) { e.printStackTrace(); } return result; } }