如何使用php下载.sql.bz2文件
我正在尝试使用php下载如何使用php下载.sql.bz2文件,php,Php,我正在尝试使用php下载.sql.bz2文件。但是我做不到 我的代码正在下载文件,但文件未打开。我想对用户隐藏文件位置 我正在使用以下代码: $folderroot = $_SERVER['DOCUMENT_ROOT']; $fileurl = $folderroot."/dbname.sql.bz2"; $downloadfilename = generaterandomcharacters(10).".sql.bz2"; header("Content-Type:
.sql.bz2
文件。但是我做不到
我的代码正在下载文件,但文件未打开。我想对用户隐藏文件位置
我正在使用以下代码:
$folderroot = $_SERVER['DOCUMENT_ROOT'];
$fileurl = $folderroot."/dbname.sql.bz2";
$downloadfilename = generaterandomcharacters(10).".sql.bz2";
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename=test.sql.bz2');
header('Pragma: no-cache');
readfile($fileurl);
我刚试过你的代码,它对我有效 因此,我认为您给$fileurl的值可能不正确 试试这个:
$folderroot = $_SERVER['DOCUMENT_ROOT'];
$fileurl = $folderroot."/dbname.sql.bz2";
if ( file_exists($fileurl) ) {
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename=test.sql.bz2');
header('Pragma: no-cache');
readfile($fileurl);
}
else
{
echo 'cannot find file : ' . $fileurl;
}
它是复制品吗?你的问题不清楚。文件正在下载,但仍要下载?通过表单上载文件时,文件不在
文档根目录中(通过FTP检查,没有新文件)。检查$\u FILES
数组中的tmp\u name
以获取文件路径。文件正在下载,但不是实际文件,未打开记事本打开文件,您将看到在下载文件之前设置的通知/错误或输出。这就是为什么它是腐败的,然后下载工作,但文件下载不正确你说的“文件下载不正确”是什么意思?你的意思是说浏览器不知道如何打开它而只是保存它?这对于内容类型是正常的:应用程序/八位字节流。是别的吗?请澄清。我收到以下错误:存档已损坏,如果我直接下载文件,则其工作正常。请尝试添加标题(“Content-Transfer-Encoding:binary”);,请检查一下它是否适合我在ubuntu上使用chrome和firefox。您使用什么应用程序打开文件?也请尝试一下@Stasik的建议,尽管它对我来说很有用。