こんにちは皆さん、これで私を助けてもらえますか? 現在、複数のファイルを Web API にアップロードできるアプリケーションを作成しています。現在、単一のファイルをアップロードできますが、複数のファイルをアップロードしようとすると、最初のファイルのみが正常にアップロードされ、破損していません。 Web サイトには引き続き表示されますが、破損しています。以下の私のコード (特にループ) が私のアプリケーションで間違った出力を与えるという奇妙な疑いがありますが、それを理解することはできません。私を助けてくれる人に感謝します。
protected Boolean doInBackground(String... arg0)
{
try
{
JSONObject jObjectFileUpload = new JSONObject();
FileBody localFileBody;
MultipartEntity localMultipartEntity;
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 15000);
HttpConnectionParams.setSoTimeout(httpParameters, 15000);
HttpPost httpPost = new HttpPost("http://sampleserversvr4.guru.com:0727/api/fileupload");
HttpClient httpclient = new DefaultHttpClient(httpParameters);
httpPost.addHeader("Authorization","Basic "+ Base64.encodeToString((_username + ":" + _password).getBytes(),Base64.NO_WRAP));
for (int i = 0; i < Constants.ARRAYLIST_URI.size(); i++)
{
uri = Constants.ARRAYLIST_URI.get(i);
file = new File(uri);
mimetype = Constants.getMimeType(uri);
filename = file.getName();
localFileBody = new FileBody(file, mimetype);
localMultipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
try {
localMultipartEntity.addPart("name", new StringBody(filename));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
localMultipartEntity.addPart("chunk", new StringBody("1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
localMultipartEntity.addPart("file data", localFileBody);
httpPost.setEntity(localMultipartEntity);
HttpResponse localHttpResponse = httpclient.execute(httpPost);
Log.i("response upload", localHttpResponse.toString());
Log.i("Multipart Entity", localMultipartEntity.toString());
}
} catch (ClientProtocolException e)
{
e.printStackTrace();
Log.e("fileUpload", "ClientProtocolException in callWebService(). " + e.getMessage());
} catch (IOException e)
{
e.printStackTrace();
Log.e("fileUpload","IOException in callWebService(). " + e.getMessage());
}
return true;
}