【问题标题】:how to send image with file如何发送带有文件的图像
【发布时间】:2026-01-21 17:10:02
【问题描述】:

我有一个用于注册应用程序的代码。现在在注册时,用户必须选择不带参数的图像,而是作为带参数的文件。 现在我正在从我的手机中设置一个图像来检查 webservice(URL) 是否被点击。我只是将图像的名称放入代码中并尝试获取其路径。 这是我的代码::-

String url ="http://somesite.com/ws/register.php?username="+ regName + "&password=" + regPass + "&email=" + regEmail + "&age=" + regAge + "&sex=qee&Device_Id=12332weewr";
         try {
             ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();



            postParameters.add(new BasicNameValuePair("file", "<thumbnail>"));


            File file = new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+File.separator +"krish.jpeg");
            Bitmap thumbnail = BitmapFactory.decodeFile("file");
        ByteArrayOutputStream baos = new ByteArrayOutputStream(); 

            thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap
            byte[] b = baos.toByteArray();
            String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
            postParameters.add(new BasicNameValuePair("file", encodedImage));
            postParameters.add(new BasicNameValuePair("fileName", "dev.jpeg"));
            postParameters.add(new BasicNameValuePair("mimeType","image/jpeg"));

        String res= CustomHttpClient.executeHttpPost(url, postParameters);

但在 thumbnail 中我没有得到图像准确的路径。它正在返回 null

【问题讨论】:

  • 您需要将图像传递给位 encodeToString

标签: android image web-services file


【解决方案1】:
Bitmap thumbnail = BitmapFactory.decodeFile("file");

我认为问题就在这里,也许你想写这样的东西?

Bitmap thumbnail = BitmapFactory.decodeFile(file.getAbsolutePath());

【讨论】:

  • 很奇怪,确保文件存在(或者你在这里得到的文件路径 Environment.getExternalStorageDirectory().getAbsoluteFile()+File.separator +"krish.jpeg" 是真的)
  • krish.jpg 是保存在我手机目录中的图片的名称。我只是把它的名字放在这里,这样我就可以检查它是否正在访问网络服务?一旦它到达网络服务,我将删除图像的名称,并将该选项留给用户插入他的个人图像。
  • "krish.jpg 是保存在我手机目录中的图片的名称。"但是你确定这张图片存在于这个路径 Environment.getExternalStorageDirectory().getAbsoluteFile()+File.separator +"krish.jpeg" 吗?您可以将错误的文件路径传递给 BitmapFactory.decodeFile,并且方法将返回 null。所以缩略图将为空。更改后 BitmapFactory.decodeFile(file.getAbsolutePath());代码必须工作,我试过了(但只有正确的文件路径传递给 decodeFile 方法)。
  • 我在“文件”中获取路径,它返回给我这个结果文件 = File(id = 830058832776) path = "/storage/sdcard/krish.jpeg"(id = 830058833072) 是这个图像在那里,因为我专门为几个小时前的测试保存了这个。
最近更新 更多