Android VolleyPlus - SimpleMultiPartRequest 问题。我无法发送文件和 return post 参数
Android VolleyPlus - SimpleMultiPartRequest issue. I can't send files and return post params
我正在使用 VolleyPlus,但我无法发送文件参数 (addFile) 或 post(addMultipartParam):
Response.Listener successListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("teste","SUCCESS: " + response);
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.i("teste", "ERROR: " + volleyError);
}
};
SimpleMultiPartRequest request = new SimpleMultiPartRequest(
Request.Method.POST, url, successListener,
errorListener) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Accept", "application/json");
// headers.put("Accept", "multipart/form-data");
// headers.put("Content-Type", "application/json");
headers.put("Content-Type", "text/plain");
//headers.put("Content-Length", "302");
headers.put("Content-Type","application/x-www-form-urlencoded");
Log.i("teste","HEADER: " + headers);
return headers;
}
};
request.addMultipartParam("name", "text/plain", "my name");
request.addFile("file1",img1);
requestQueue = RequestQueueSingle.getInstance(RelatarErros.this);
request.setShouldCache(false);
request.setRetryPolicy(new DefaultRetryPolicy((int) TimeUnit.SECONDS.toMillis(40), DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(request);
requestQueue.start();
响应时,我总是得到 post 的空白结果并且 $_File['file1'] 是空的。
PHP代码:
<?php
header("Content-Type: text/plain");
echo "NAME: " . $_POST['name'];
if(isset($_FILES['file1'])){
if (move_uploaded_file($_FILES['file']['tmp_name'], $directory . $final_name)) {
echo "Success!";
} else {
echo "Error";
}
}
else{
echo "Empty";
}
?>
一切都正确吗?
感谢您的帮助。
我做的有点不同。检查此 link:http://team.158ltd.com/2015/04/30/how-to-upload-image-to-php-server-android/
对我有用。
希望对大家有所帮助。
我正在使用 VolleyPlus,但我无法发送文件参数 (addFile) 或 post(addMultipartParam):
Response.Listener successListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("teste","SUCCESS: " + response);
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.i("teste", "ERROR: " + volleyError);
}
};
SimpleMultiPartRequest request = new SimpleMultiPartRequest(
Request.Method.POST, url, successListener,
errorListener) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Accept", "application/json");
// headers.put("Accept", "multipart/form-data");
// headers.put("Content-Type", "application/json");
headers.put("Content-Type", "text/plain");
//headers.put("Content-Length", "302");
headers.put("Content-Type","application/x-www-form-urlencoded");
Log.i("teste","HEADER: " + headers);
return headers;
}
};
request.addMultipartParam("name", "text/plain", "my name");
request.addFile("file1",img1);
requestQueue = RequestQueueSingle.getInstance(RelatarErros.this);
request.setShouldCache(false);
request.setRetryPolicy(new DefaultRetryPolicy((int) TimeUnit.SECONDS.toMillis(40), DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(request);
requestQueue.start();
响应时,我总是得到 post 的空白结果并且 $_File['file1'] 是空的。
PHP代码:
<?php
header("Content-Type: text/plain");
echo "NAME: " . $_POST['name'];
if(isset($_FILES['file1'])){
if (move_uploaded_file($_FILES['file']['tmp_name'], $directory . $final_name)) {
echo "Success!";
} else {
echo "Error";
}
}
else{
echo "Empty";
}
?>
一切都正确吗?
感谢您的帮助。
我做的有点不同。检查此 link:http://team.158ltd.com/2015/04/30/how-to-upload-image-to-php-server-android/
对我有用。
希望对大家有所帮助。