[英]Android not uploading image/bitmap to server
我可以从图库中选择图像,并更新ImageView,所以这一切都很好。 当我单击提交按钮时,我将文件名打印到控制台,这就是打印的内容。 /storage/emulated/0/Pictures/Instagram/IMG_20191127_190337_870.jpg
现在,让我们开始编写代码。
public class SaveStashItem extends AsyncTask<String, Void, String > {
Context myContext;
String result;
public SaveStashItem(Context context) {
myContext = context;
}
@Override
protected String doInBackground(String... params) {
try {
// set parameters and execute
URL url = new URL(Constants.API_ADD_ITEM);
Map<String,Object> params1 = new LinkedHashMap<>();
params1.put(Constants.FILE_NAME, getPath(filepath));
StringBuilder postData = new StringBuilder();
for (Map.Entry<String,Object> param : params1.entrySet()) {
if (postData.length() != 0){postData.append('&');}
postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
postData.append('=');
postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
conn.setDoOutput(true);
conn.getOutputStream().write(postDataBytes);
//Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
StringBuilder total = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
total.append(line).append('\n');
}
Constants.logInformation(TAG, "Server Response is: " + total.toString(),
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}
因此,正如我之前所说,我已经成功获取了所选图像的路径。 我将其作为POST发送到服务器,然后像这样获取它。
$fileinfo = pathinfo($_FILES['imagePath1']['name']);
echo json_encode($fileinfo);
我将获得基本名称和文件名为空。
11-28 07:55:28.148 14722-14722/I/System.out: /storage/emulated/0/Pictures/Instagram/IMG_20191127_190337_870.jpg
11-28 07:55:28.391 14722-14891/I/MyStash: Server Response is: {"basename":"","filename":""}
为什么这些是空的? POST不正确吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.