2013-07-02 4 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 и отправлять и получать данные.