Я использую Apache Commons для загрузки, и вот мой код загрузки, который работает идеально каждый раз ...
public Integer uploadByteArray(String remoteFilename, byte[] bitmapdata){
HttpClient client = new HttpClient();
PostMethod filePost = new PostMethod( URL_PATH);
Integer ret = null;
try {
Part[] parts = new Part[2];
parts[0] = new StringPart("file_name" ,remoteFilename);
ByteArrayPartSource ps = new ByteArrayPartSource("file", bitmapdata);
parts[1] = new FilePart("file", ps);
filePost.setRequestEntity(new MultipartRequestEntity(parts,
filePost.getParams()));
} catch (Exception e) {
Log.d(TAG, e.toString());
}
try {
ret = client.executeMethod(filePost);
Log.d(TAG, "statusCode>>>" + ret);
if(ret != 200){
Log.d(TAG, "Error:" + ret + " from server. Please try again later.");
}else{
responseBody = filePost.getResponseBodyAsString();
Log.d(TAG, filePost.getResponseBodyAsString());
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
filePost.releaseConnection();
return ret;
}
Если вы продолжаете видеть вашу проблему повторяющейся, я бы использовалMD5 для файла, который вы получаете на сервере, отправьте это значение обратно в ответ и сравните его с локальным MD5 файла, который вы отправили.Если они не совпадают, значит, что-то пошло не так.