请论坛的朋友帮忙。
我用的一个网站程序中download.php内容摘录如下:
<?php
header("Content-type: application/x-something");
header( "Content-Disposition: attachment; filename=\"$file\"" );
header( "Content-Description: PHP3 Generated Data" );
if( $info["path"] )
{
header("Content-Length: ". filesize( $fgal_use_dir.$info["path"] ) );
}
else
{
header("Content-Length: ". $info[ "filesize" ] );
}
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public\n\n\n");
if($info["path"]) {
readfile($fgal_use_dir.$info["path"]);
} else {
echo "$content";
}
?>
8 个解决方案
#1
header("Content-type: application/x-something")不对。
application/x-something,对于不同的类型的文件是不同的。
例如:
$mime_types = array(
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'zip' => 'application/zip',
'exe' => 'application/octet-stream',
'gz' => 'application/x-gzip-compressed',
'z' => 'application/x-compress',
'tgz' => 'application/x-gtar',
'tar' => 'application/x-tar',
'pdf' => 'application/pdf',
'doc' => 'application/msword',
'xls' => 'application/excel',
'ppt' => 'application/powerpoint',
'swf' => 'application/x-shockwave-flash',
'png' => 'image/x-png',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'rm' => 'application/vnd.rn-realmedia',
'ra' => 'application/vnd.rn-realmedia',
'wma' => 'audio/x-ms-wma',
'mov' => 'video/quicktime',
'mpg' => 'video/mpeg',
'mpeg' => 'video/mpeg'
);
$default = 'application/octet-stream';
application/x-something,对于不同的类型的文件是不同的。
例如:
$mime_types = array(
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'zip' => 'application/zip',
'exe' => 'application/octet-stream',
'gz' => 'application/x-gzip-compressed',
'z' => 'application/x-compress',
'tgz' => 'application/x-gtar',
'tar' => 'application/x-tar',
'pdf' => 'application/pdf',
'doc' => 'application/msword',
'xls' => 'application/excel',
'ppt' => 'application/powerpoint',
'swf' => 'application/x-shockwave-flash',
'png' => 'image/x-png',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'rm' => 'application/vnd.rn-realmedia',
'ra' => 'application/vnd.rn-realmedia',
'wma' => 'audio/x-ms-wma',
'mov' => 'video/quicktime',
'mpg' => 'video/mpeg',
'mpeg' => 'video/mpeg'
);
$default = 'application/octet-stream';
#2
大哥,那个地方我改过好几个,zip,octet-stream等都试过的,传下来还是内容空白文件,虽然看上去文件大小是一样的
谢谢你的回复!
谢谢你的回复!
#3
hahawen,我会给你分的
#4
仔细看看你的代码,好像有两种情况可以进行下载成功,但没试过:
情况1:
$info["path"]
$file
$fgal_use_dir
这三个变量存在,并且文件存在$fgal_use_dir.$info["path"];
情况2:
$file
$content
这两个变量存在,但是$info["path"]不存在
觉得怪怪的!
情况1:
$info["path"]
$file
$fgal_use_dir
这三个变量存在,并且文件存在$fgal_use_dir.$info["path"];
情况2:
$file
$content
这两个变量存在,但是$info["path"]不存在
觉得怪怪的!
#5
因为原来代码有大量变量并涉及到很多其它文件,所以我贴上来时把很多不相关的部分去掉了,因为那些变量基本可以肯定没有问题。需要下载的文件事先也是通过同样的变量传上服务器去的。
#6
不知道有人试过没有:用这种方法提供下载doc文件,当直接选择打开时有些机器的word会出现该文件无法找到的错误,而有些机器却一点问题都没有??
#7
mark先,帮你up
#8
up先,高手快来
#1
header("Content-type: application/x-something")不对。
application/x-something,对于不同的类型的文件是不同的。
例如:
$mime_types = array(
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'zip' => 'application/zip',
'exe' => 'application/octet-stream',
'gz' => 'application/x-gzip-compressed',
'z' => 'application/x-compress',
'tgz' => 'application/x-gtar',
'tar' => 'application/x-tar',
'pdf' => 'application/pdf',
'doc' => 'application/msword',
'xls' => 'application/excel',
'ppt' => 'application/powerpoint',
'swf' => 'application/x-shockwave-flash',
'png' => 'image/x-png',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'rm' => 'application/vnd.rn-realmedia',
'ra' => 'application/vnd.rn-realmedia',
'wma' => 'audio/x-ms-wma',
'mov' => 'video/quicktime',
'mpg' => 'video/mpeg',
'mpeg' => 'video/mpeg'
);
$default = 'application/octet-stream';
application/x-something,对于不同的类型的文件是不同的。
例如:
$mime_types = array(
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'zip' => 'application/zip',
'exe' => 'application/octet-stream',
'gz' => 'application/x-gzip-compressed',
'z' => 'application/x-compress',
'tgz' => 'application/x-gtar',
'tar' => 'application/x-tar',
'pdf' => 'application/pdf',
'doc' => 'application/msword',
'xls' => 'application/excel',
'ppt' => 'application/powerpoint',
'swf' => 'application/x-shockwave-flash',
'png' => 'image/x-png',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'rm' => 'application/vnd.rn-realmedia',
'ra' => 'application/vnd.rn-realmedia',
'wma' => 'audio/x-ms-wma',
'mov' => 'video/quicktime',
'mpg' => 'video/mpeg',
'mpeg' => 'video/mpeg'
);
$default = 'application/octet-stream';
#2
大哥,那个地方我改过好几个,zip,octet-stream等都试过的,传下来还是内容空白文件,虽然看上去文件大小是一样的
谢谢你的回复!
谢谢你的回复!
#3
hahawen,我会给你分的
#4
仔细看看你的代码,好像有两种情况可以进行下载成功,但没试过:
情况1:
$info["path"]
$file
$fgal_use_dir
这三个变量存在,并且文件存在$fgal_use_dir.$info["path"];
情况2:
$file
$content
这两个变量存在,但是$info["path"]不存在
觉得怪怪的!
情况1:
$info["path"]
$file
$fgal_use_dir
这三个变量存在,并且文件存在$fgal_use_dir.$info["path"];
情况2:
$file
$content
这两个变量存在,但是$info["path"]不存在
觉得怪怪的!
#5
因为原来代码有大量变量并涉及到很多其它文件,所以我贴上来时把很多不相关的部分去掉了,因为那些变量基本可以肯定没有问题。需要下载的文件事先也是通过同样的变量传上服务器去的。
#6
不知道有人试过没有:用这种方法提供下载doc文件,当直接选择打开时有些机器的word会出现该文件无法找到的错误,而有些机器却一点问题都没有??
#7
mark先,帮你up
#8
up先,高手快来