无法将图像上传到服务器文件系统使用Volley HashMap和Php

时间:2017-08-19 11:39:10

标签: php android hashmap android-volley

开发用于将图像名称上传到数据库的android应用程序和图像文件到数据库文件系统。首先在android中我将图像更改为base64格式,将其发布到数据库并使用Php编码函数将其编码回文件。

下面显示的代码适用于android。

问题是它只添加数据库表中的其他内容,包括图像名称,但我无法将图像发布到名为images的文件夹的文件系统中。

 {
             @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String,String> params = new HashMap<>();
                    params.put("desc","Desc");
                    params.put("image",System.currentTimeMillis()+".jpg");
                    params.put("photo",imageToString(selectedImage));
                    params.put("title","title");
                    params.put("contact","0716098762");
                    params.put("price","376867");
                    params.put("category","w");

                    return params;
                }
            };
            MySingleton.getmInstance(UploadImageActivity.this).addToRequestQueue(stringRequest);
        }
        private String imageToString(Bitmap bitmap)
        {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG,100,byteArrayOutputStream);
            byte [] imgByte = byteArrayOutputStream.toByteArray();
            return Base64.encodeToString(imgByte,Base64.DEFAULT);

        }

PHP

$itemContact  = $_POST["contact"];
$itemPrice = $_POST["price"];
$itemDesc = $_POST["desc"];
$image_name    = $_POST["image"];
$category    = $_POST["category"];
$file_tmp = "images/$image_name.jpg";
$imsrc = base64_decode($_POST['photo']);

 file_put_contents($file_tmp, $imsrc);
$sql = "insert into sales_items values('','$itemTitle','$itemContact','$itemPrice','$itemDesc','$image_name','$category');";

2 个答案:

答案 0 :(得分:2)

开发将在Facebook上分享内容的android工作室无法从下载的sdk导入Facebook sdk。这就是我如何确保我能解决它。

从Android Studio编辑器转到文件 ==&gt; 项目结构。在模块下弹出式面板的左侧,选择 app ==&gt;的依赖关系。

项目结构窗口 enter image description here

从面板右侧选择按钮 + ,然后选择图书馆依赖。向下滚动选择Facebook sdk库。

select the right + button enter image description here

现在如果不在列表中的facebook sdk库在搜索区域内输入 facebook 并单击搜索按钮,则可以看到"com.facebook.android:facebook-android-sdk:4.25.0
从这里选择sdk enter image description here 选择它,然后按确定。等待Gradle同步,你可以在你的项目中使用facebook sdk。

答案 1 :(得分:0)

  • 1 - 下载sdk
  • 2 - 转到新的并在地址中添加新模块,然后发送fb sdk path
  • 3 - 进入项目结构并在依赖选项卡中单击+图标和 选择模块并选择android.facebook