2015-06-29 2 views
3

Я использую заголовок ("Content-Disposition: ..."). Для скачивания файлов с веб-сайта Чтобы установить путь, я использую следующий код:Php контента расположение папки не работает

$myPath = realpath('../wp-content/uploads/'); 

Я знаю, что путь в порядке, напечатав его в консоли Поэтому я использую следующие строки, чтобы загрузить его:.

$full_path=$myPath. '/myfile.csv'; 
header('Content-Disposition: attachment; filename=' . $full_path); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

Наконец, он загружает файл, но проблема заключается в следующем один Вместо загрузки его. в правой папке, она делает это в папке «загрузки» моего компьютера, а имя файла - это путь к папке, но изменение символа «/» s - '-'. Например: «-Applications-XAMPP-htdocs-myproject-wp-content-uploads-myfile.csv»

Любое решение? Большое вам спасибо

+1

Кажется, вы добавляете дополнительную косую черту '/' –

+4

Вы __cannot__ используете заголовки, чтобы сообщить браузер, в папку которого должен быть загружен файл .... это полностью зависит от пользователя браузера, их выбор, а не сценарии веб-сервера –

+1

'filename = '. basename ($ full_path) '- не просачиваются системные пути (даже если это Wordpress). –

ответ

1

Вы не можете выбрать, где вы загрузили файл. Это настройки браузера, которые вы не можете изменить. Если вы думаете об этом, если веб-сайту разрешено сохранять файлы там, где он хочет, это может быть очень безопасный поток, поскольку он может ovverride важных системных файлов.

Боюсь, что вы не можете много сделать. Просто поставьте предупреждение или сообщение, сообщающее пользователю сохранить файл в том месте, которое вы хотите, если местоположение имеет решающее значение для вашего проекта.

Смежные вопросы