2009-10-09 87 views
0

我面临从服务器下载任何图像文件的问题。图像文件下载问题

我可以成功上传它们,并可以从上传和存储位置打开它们。

当我使用我的功能下载图像文件完全下载,文件大小也是正确的,但是当我打开它们时出现错误无图像预览!!!

$fileString=$fileDir.'/'.$fileName; // combine the path and file 
    // translate file name properly for Internet Explorer. 
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) 
{ 
     $instance_name = preg_replace('/\./', '%2e', $instance_name, substr_count($instance_name, '.') - 1); 
} 
// make sure the file exists before sending headers 

if([email protected]($fileString,'r')) 
    { 
     die("Cannot Open File!"); 
    } 
else 
    { 
     header("Cache-Control: ");// leave blank to avoid IE errors 
     header("Pragma: ");// leave blank to avoid IE errors 
     header("Content-type: application/octet-stream"); 
     header("Content-Disposition: attachment; filename=\"".$instance_name."\""); 
     header("Content-length:".(string)(filesize($fileString))); 
     sleep(1); 
     fpassthru($fdl); 
    } 

我使用IE作为浏览器。

我正在使用此代码片段来下载文件,而不是在浏览器上显示。该脚本执行并提示我是否打开/保存该文件。当我保存文件的大小也是正确的,但图像不显示。当我右键单击并查看文件摘要时,说明摘要不可用。

在此先感谢。请帮助。

+2

尝试从“@fopen”删除@看看错误,如果任何 – 2009-10-09 13:39:07

回答

0

此行:header("Content-type: application/octet-stream");对我来说似乎很腥。你可能想尝试给实际的MIME类型,看看是否有帮助

1

目前尚不清楚,从你的代码,您使用的PHP代码段以服务网页上的图像,如:

<img src="my-php-script.php" alt="blah blah blah" /> 

如果是这样,您的内容类型不正确。您需要使用图像MIME类型,例如image/gif,image/jpeg,image/png或image/tiff,以最合适的为准。

0

问题在于MIME类型。请看看这里:

http://www.daniweb.com/forums/thread122055.html

这是,如果你想在浏览器中查看图像。

如果你想下载它们作为二进制文件,然后离开你的MIME类型。

也请更改文件的打开方式从“R”为“RB”