я в тупике.Я собираю сценарий, чтобы извлечь PATH_INFO из URL и использовать его для отправки файлов из определенного каталога на сервере.
на сервере:
ll /path/to/directory/with/my/files/
total 7195210
-rwxrwx--- 1 user group 716852833 May 11 15:17 file1.7z
-rwxrwx--- 1 user group 1000509440 May 11 15:31 file2.cxarchive
-rwxrwx--- 1 user group 5878056960 May 11 17:32 file3.ISO
У меня есть *Блок 1006 * в моем коде, и он работает для file1 и file2, но file3, , который находится в том же месте , запускает оператор else, указывая, что PHP считает, что файл не существует.
<code><?php
//get file name from URL, trim leading slash.
$filename = ltrim($_SERVER['PATH_INFO'], "/");
//sanitize the filename
if(preg_match('/\.\.|[<>&~;`\/$]/', $filename)) {
trigger_error("Invalid path '$filename' attempted by $user");
show_error();
}
//prepend my files directory to the filename.
$file = '/path/to/directory/with/my/files/' . $filename;
//send file
if (file_exists($file)) {
echo '<pre>The file '; print_r($file); echo ' exists.
';заголовок ('X-Sendfile: $ file');выход;} else {echo '
the file does not exist?
';show_error ();}?>
, поэтому, если я перехожу к следующим URL-адресам на моем сервере:
https://my.server.com/script.php/file1.7z
Файл file1.7z существует.
https://my.server.com/script.php/file2.cxarchive
Файл file2.cxarchive существует.
https://my.server.com/script.php/file3.ISO
Файл не существует?
куча результатов тестированияв вероятном виновнике в том, что файл большой.я получаю, что при отправке файлов ограничения памяти являются проблемой, но как мне заставить PHP увидеть, что этот (большой) файл существует?