2013-07-02 40 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協議與它通信,併發送和接收數據

相關問題