我已经在我的服务器上上传了一些图片,这些图片将通过传递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 />';
?>
答案 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
。