更改将文件从Android传输到一个PHP服务器
问题描述:
嗨我写了一个代码来将JSON对象从android手机传输到PHP服务器,如下所示。如果我想将文件传输到服务器,能否请您在我的代码中建议我所需的更改。更改将文件从Android传输到一个PHP服务器
private String constructDataRecord(JSONObject data, String type)
{
JSONObject dataRecord = new JSONObject();
try
{
dataRecord.put("date", timeStr);
dataRecord.put("time_stamp", c.getTimeInMillis());
dataRecord.put("user", IMEI);
dataRecord.put("type", type);
dataRecord.put("ver", VER);
dataRecord.put("data", data);
}
catch (JSONException e)
{
Log.e(TAG, "Exception", e);
}
String url = "http://mpss.csce.uark.edu/~smandava/index.php";
Map<String, String> kvPairs = new HashMap<String, String>();
kvPairs.put("data", dataRecord.toString());
Log.d(TAG, "Exception");
HttpResponse re = null;
try {
re = doPost(url, kvPairs);
String temp = EntityUtils.toString(re.getEntity());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// if (temp.compareTo("SUCCESS")==0)
{
// Toast.makeText(this, "Sending complete!", Toast.LENGTH_LONG).show();
}
return dataRecord.toString();
}
public static HttpResponse doPost(String url, Map<String, String> kvPairs) throws ClientProtocolException, IOException
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
if (kvPairs != null && kvPairs.isEmpty() == false)
{
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(kvPairs.size());
String k, v;
Iterator<String> itKeys = kvPairs.keySet().iterator();
while (itKeys.hasNext())
{
k = itKeys.next();
v = kvPairs.get(k);
nameValuePairs.add(new BasicNameValuePair(k, v));
}
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
}
HttpResponse response;
response = httpclient.execute(httppost);
return response;
}