2013-07-02 38 views
-3

我有一个当前正在本地工作的PHP脚本,我想将它放在服务器上。处理来自服务器的本地文件

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

从我读过的内容中,我认为我需要将文件上传到服务器,使用脚本处理它,然后将其还给用户。 虽然我不确定这是否是正确的方法。

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

回答

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; 
} 
?> 

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

2

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

您的服务器没有任何业务知道客户机器上的任何文件或文件夹。它只能通过HTTP协议与它通信,并发送和接收数据

相关问题