JQuery — PHP ReadFile Проблемы с пробелами

У меня возникла небольшая проблема с PHP, на которой я застрял в данный момент. У меня есть файл с именем download.php, который обеспечивает безопасный доступ к загрузкам файлов, которые хранятся в личной папке на сервере. то есть на 1 уровень выше httpd.

Код выглядит так.

        $Document = new Documents($DID);

$file = $Document->getfilewithdir();

header("Content-Description: File Transfer");
header("Content-length: " . $Document->getfilesize());
header("Content-type: " . $Document->getfiletype());
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-disposition: attachment; filename=\"" . basename($Document->getfilename()) . "\"");

readfile($file);
exit;

куда

$ Document-> getfilewithdir () возвращает что-то вроде /Applications/MAMP/htdocs/Portal_QCNW/private/portal_files/filename.docx

а также

$ Document-> getfilename () возвращает что-то вроде filename.docx.

Дополнительный код включен:

    function setfilename($Val)
{
$this->c_Filename = $Val;
}

function getfilename()
{
return $this->c_Filename;
}

function getfilewithdir()
{
$path_parts = pathinfo($this->geturl());
$file_name  = $path_parts['basename'];

return FILELOC . $file_name;
}

Это нормально, если в имени файла нет пробелов, но если в имени файла есть пробелы, т. Е. Имя файла.docx или имя файла (1) .docx, то оператор readfile возвращает «не удалось открыть поток». Что я могу сделать, чтобы обойти это и иметь дело с пробелами в именах файлов?

я использую https://blueimp.github.io/jQuery-File-Upload/ загрузить файл, и там может быть что-то, что я удалил пробелы на этапе загрузки.

Любые мысли и советы будут великолепны.

С уважением

Джеймс

0

Решение

Спасибо за вашу помощь. Я пересмотрел код и упростил его. Поскольку я передавал имя файла URL, оно было отформатировано как URL, а не как строка.

Все отсортировано сейчас.

Джеймс

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector