我寫了這個AsyncTask
類,它發送POST數據的數組到我的PHP服務器沒有問題。現在我想擴展它,以便它也發送一個文件到相同的腳本(我已經在PHP文件中的接收處理)。我的意思是我希望它一次性發布DATA + FILE。像多部分實體或從HTML動作到PHP腳本的東西。Android發佈一個多段HTML表單到php服務器
我需要添加什麼,以便它可以上傳文件與其他東西?
public class UpdateSnakeGameStatusTask extends AsyncTask<String, Integer, HttpResponse> {
private Context mContext;
private ArrayList<NameValuePair> mPairs;
/**
* @param context The context that uses this AsyncTask thread
* @param postPairs <b>NameValuePair</b> which contains name and post data
*/
public UpdateSnakeGameStatusTask(Context context, ArrayList<NameValuePair> postPairs) {
mContext = context;
mPairs = new ArrayList<NameValuePair>(postPairs);
}
@Override
protected HttpResponse doInBackground(String... params) {
HttpResponse response = null;
HttpPost httppost = new HttpPost(params[0]); //this is the URL
try {
httppost.setEntity(new UrlEncodedFormEntity(mPairs));
HttpClient client = new DefaultHttpClient();
response = client.execute(httppost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
}
可能重複[如何從Android的手機使用HTTP發送文件到服務器?(http://stackoverflow.com/questions/4126625/how-to-send -a-file-in-android-from-mobile-to-server-using-http) – nKn
@nKn多數民衆贊成只爲一個單一的文件,我想發佈數據+文件在同一職位行動 –
你可以把文件base64編碼在名稱值對。 – greenapps