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;
}
}