繁体   English   中英

Android未将图像/位图上传到服务器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM