PHP在服务器上创建文件以进行下载

时间:2015-10-22 08:13:10

标签: php

我尝试在Web服务器上创建一个文件而不是下载它。使用此代码

<?php
$text = "test";
$filename = 'Testfile.txt';
file_put_contents($filename, $text, FILE_APPEND | LOCK_EX) or die ("Unable to open file!");

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; "); 
header("Content-Transfer-Encoding: binary");
readfile($filename);
?>

问题是,我总是得到&#34;无法打开文件!&#34; ..如果我在没有或死的情况下尝试它......它下载文件但是是空的。我尝试在服务器上创建一个具有所有权限的文件夹(chmod 777 ...),但是在那里加载/创建文件但是也不起作用。 :(

2 个答案:

答案 0 :(得分:0)

$text = "test";
$filename = 'Testfile.txt';
if (is_writable($filename)) {
    file_put_contents($filename, $text, FILE_APPEND | LOCK_EX) or die ("Unable to open file!");
} else {
    echo "You Do not have write permission to this FILE.";
}

答案 1 :(得分:0)

使用filewrite并检查文件夹是否具有写入权限

$text = '123';
$filename = "Testfile.txt";
$fh = fopen($filename, 'w') or die("can't open file");
fwrite($fh, $text);
fclose($fh);


header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; "); 
header("Content-Transfer-Encoding: binary");
readfile($filename);