Android:图像无法从服务器下载

时间:2015-06-24 09:23:15

标签: php android image server

我已经在我的服务器上上传了一些图片,这些图片将通过传递url下载到我的Android应用程序。我写了一个显示图像的php文件。我将URL传递给我的Android应用程序,如下所示:

'http://myURL/getImage.php?image=logo.png'。

当我在浏览器中直接粘贴URL时,图像会正确显示。 但是,我的Android应用程序没有下载图像文件。我知道android代码是正确的,因为当我提供任何其他随机图像URL时,图像正在正确下载。我是否必须在我的php文件中提供其他内容才能使图像“可下载”。

Image.php

<?php

  echo '<img src="Images/'.$_REQUEST['image'].'"/><br />';

 ?>     

1 个答案:

答案 0 :(得分:1)

您似乎希望PHP 直接输出图像。相反,您的代码正在生成带有图像的HTML 。虽然您的浏览器显示的结果相似,但基础内容却不同。

你真正需要的是:

<?php

$filepath = 'Images/'.$_REQUEST['image'];
$filename = basename($filepath);
$ctype = 'image/jpeg'; // assuming it is a .jpg file

if (is_file($filepath)) {
    header('Content-Type: '.$ctype);
    header('Content-Length: ' . filesize($filepath));
    header('Content-Disposition: attachment; filename="'.$fileName.'"');
    echo file_get_contents($file);
    exit();
} else {
    header("HTTP/1.0 404 Not Found");
    // you may add some other message here
    exit();
}

这很容易受到危险的$_REQUEST['image']输入。只是以某种方式过滤它。此外,您必须为图像文件生成正确的$ctype