【发布时间】:2025-12-31 16:25:14
【问题描述】:
我用谷歌搜索了很多,但它不起作用。我发现了很多有信息的网站,但是我的应用程序在所有网站上都崩溃了。我要打开的图片是:“lastfile.png”。它存储在内部存储中,所以我用 openFileInput("lastfile.png"); 来打开它;
我在 AsyncTask 中完成。
这是我目前的代码:
class PostTask extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... uri) {
if(picture == null) {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
String responseString = null;
try {
response = httpclient.execute(new HttpGet(uri[0]));
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
responseString = out.toString();
} else{
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
} catch (ClientProtocolException e) {
Toast.makeText(AddStoryActivity.this, getResources().getString(R.string.error), Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(AddStoryActivity.this, getResources().getString(R.string.error), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
return responseString;
} else {
/* IMAGE UPLOAD */
}
return "";
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progress.cancel();
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
}
}
【问题讨论】:
-
要上传的图片数据在哪里?这似乎更像是一种从服务器 dnload 的方式。对于图片上传,您应该创建一个 HttpPost 请求,并在调用
httpClient.execute之前将要上传的文件附加到它。
标签: java android file-upload