Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php下载.sql.bz2文件_Php - Fatal编程技术网

如何使用php下载.sql.bz2文件

如何使用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:

我正在尝试使用php下载
.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的建议,尽管它对我来说很有用。