【发布时间】:2015-05-11 18:53:19
【问题描述】:
我已经在我的 IIS 上创建了文件夹,这是它的 url:
http://xxx.xxx.xx.120/checkin/Documents/
我正在尝试在我的 .NET 服务器上上传图片,但遗憾的是没有成功。我不知道出了什么问题,它说 File Uploaded 但是当我检查服务器时它显示 empty folder。这是我的代码
class ImageUploadTask extends AsyncTask<Void, Void, String> {
private String webAddressToPost = "http://xxx.xxx.xx.120/checkin/Documents/";
// private ProgressDialog dialog;
private ProgressDialog dialog = new ProgressDialog(ImageGalleryDemoActivity.this);
@Override
protected void onPreExecute() {
dialog.setMessage("Uploading...");
dialog.show();
}
@Override
protected String doInBackground(Void... params) {
try {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(webAddressToPost);
MultipartEntity entity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
String file = Base64.encodeBytes(data);
entity.addPart("uploaded", new StringBody(file));
entity.addPart("someOtherStringToSend", new StringBody("your string here"));
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost,
localContext);
BufferedReader reader = new BufferedReader(
new InputStreamReader(
response.getEntity().getContent(), "UTF-8"));
String sResponse = reader.toString();
System.out.println("PPPPPPPPPPPPP>>>>>>>>>> " + sResponse);
return sResponse;
} catch (Exception e) {
// something went wrong. connection with the server error
System.out.println(">>>?????? " + e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(String result) {
dialog.dismiss();
Toast.makeText(getApplicationContext(), "file uploaded",
Toast.LENGTH_LONG).show();
new DownloadImage().execute("http://xxx.xxx.xx.120/checkin/Documents/abc.jpg");
}
}
【问题讨论】:
-
它总是会显示上传的文件,因为你在 onPostExecute 中做到了,不管你的服务器有错误。也发布处理发布请求的 .NET 代码
标签: android server image-uploading image-upload