使用AsyncHttpClient库上传multipart/form-data
问题描述:
我试图上传图片使用AsyncHttpClient
,我的图像sucsessfully上传,但它无法从我的服务器打开,他们说:“这不是一个有效的位图文件或其格式不支持“。以前我用AsyncHttpClient
库,我可以上传并看到在我的服务器我的形象,这是我上传我的图片前:使用AsyncHttpClient库上传multipart/form-data
public static String POSTUpload(String url, String file) {
int status = 0;
String result = "";
PostMethod method = new PostMethod(url);
try {
HttpClient httpClient = new HttpClient();
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(300000);
httpClient.getHttpConnectionManager().getParams().setSoTimeout(300000);
method.setRequestEntity(new FileRequestEntity(new File(file), "multipart/form-data"));
status = httpClient.executeMethod(method);
result = String.valueOf(status);
System.out.println("HTTP status " + method.getStatusCode() + " creating con\n\n");
} catch (ConnectTimeoutException e) {
Log.e("Timeout Exception: ", e.toString());
} catch (SocketTimeoutException ste) {
Log.e("Timeout Exception: ", ste.toString());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
method.releaseConnection();
}
return result;
}
,这是我如何使用AsyncHttpClient
上传我的图片:
private void POSTUpload(String url_upload, String file) {
RequestParams params = new RequestParams();
try {
params.put("uploaded_file", new File(file));
params.setForceMultipartEntityContentType(true);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
AsyncHttpClient client = new AsyncHttpClient();
client.setMaxConnections(100);
client.post(url_upload, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
System.out.println("statusCode " + statusCode);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
我不明白为什么当我使用这个库时我的图片无法显示。我希望有人能帮助我解决我的问题。非常感谢你。