-3

我有一个当前在本地工作的 PHP 脚本,我想将它放在服务器上。

当前,用户选择一个 .txt 文件,PHP 脚本对其进行处理并根据它在文件中读取的内容输出一个新文件。问题是我只能选择带有脚本的文件夹中的文件,而不能选择其他地方。我使用 a 来获取文件名,但它只给出文件名,而不是绝对路径。

从我读过的内容来看,我认为我需要将文件上传到服务器,使用脚本对其进行处理,然后将其返回给用户。我不确定这是正确的方法。

另外,虽然我找到了大量关于将文件上传到服务器的信息,但我不知道如何将脚本创建的新文件放入原始文件所在的文件夹中。

4

2 回答 2

2

您不能直接在客户端机器上读取或写入文件。客户端需要通过在浏览器中选择文件来上传文件,服务器接收数据,处理数据并返回数据。这个返回的数据可以通过设置适当的 HTTP 标头以文件下载的形式呈现。客户必须确认文件下载并将其保存在他选择的位置。

您的服务器对客户端机器上的文件或文件夹一无所知。它只能通过 HTTP 协议与它通信并发送和接收数据

于 2013-07-02T13:40:55.217 回答
1

您必须将该文件作为可下载文件返回给客户端。您可以通过设置一些标题将其“写入”给用户。看一看:

<?php
$file = 'random_text_file.txt';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>

这将提示将文件下载给用户。

于 2013-07-02T13:41:04.420 回答