无法将图像和一个数据上传到服务器

Posted

技术标签:

【中文标题】无法将图像和一个数据上传到服务器【英文标题】:Unable to upload image and one data to server 【发布时间】:2018-02-06 10:09:33 【问题描述】:

这是我用来上传一张照片和一张数据的代码。应用程序不断显示发送对话框,它不会停止。

private void uploadImage() 
        String uploadUrl = "http://************.php";

        HashMap<String, String> params = new HashMap<>();
        params.put("photo_one",imageString(bitmap));
        params.put("mobile",mName.getText().toString().trim());

        final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setMessage("Sending Data....");
        progressDialog.show();

        JsonObjectRequest req = new JsonObjectRequest(uploadUrl, new JSONObject(params),
                new Response.Listener<JSONObject>() 
                    @Override
                    public void onResponse(JSONObject response) 
                        progressDialog.dismiss();

                        String success = (String) response.opt("success");
                        if (!success.equals("1") )
                         
                Toast.makeText(getApplicationContext(),"Invalid Username & Password...",Toast.LENGTH_LONG).show();
                         
                    
                , new Response.ErrorListener() 
            @Override
            public void onErrorResponse(VolleyError error) 
                progressDialog.dismiss();
            
        );
        int x=2;// retry count
        req.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48, x, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

我使用调试模式检查发生了什么,得到了回复。

> req = JsonObjectRequest@4643 "[ ]
> http://*********.php 0xb5b5014d NORMAL null" 
> this = MainActivity@4174  uploadUrl = "http://***********.php"
> params = HashMap@4549  size = 2 
> progressDialog = ProgressDialog@4595  req = JsonObjectRequest@4643 "[]
> http://***********.php 0xb5b5014d NORMAL null" x = 2

【问题讨论】:

你知道邮递员或ARC这两者都是用来检查请求和响应服务器尝试使用它。 是的,我检查了链接,它工作正常。 【参考方案1】:

请使用 Log 检查 Json 响应。

为了不断显示进度对话框,请更改以下内容

final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setMessage("Sending Data....");
        progressDialog.show();

final ProgressDialog loading = ProgressDialog.show(this,"Sending Data","Please wait...",false,false);

【讨论】:

以上是关于无法将图像和一个数据上传到服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法从 python 服务器将图像上传到 Firebase 存储

无法在颤动中使用 dio 将图像上传到 api

Android:上传到服务器的图像始终为 0 字节

Android:无法使用 php 脚本将图像上传到远程 MySql DB

无法将图像发送到 Go 服务器

使用 PHP 和单个 HTML 输入将多个图像上传到服务器和数据库[重复]