Я использую этот код при попытке загрузить файл в каталог:php, загрузка файла в каталог с пробелами в заголовке?
if(move_uploaded_file($_FILES['upl']['tmp_name'], '../'.$acct_id.'/music/'.$playlist.'/'.$_FILES['upl']['name'])){
echo '{"status":"success"}';
exit;
}
Он отлично работает до тех пор, как переменные $ списков воспроизведения одной строку (без пробелов)
Но когда переменная $playlist
что-то вроде "Greatest Hits"
с пробелом между двумя словами, код не будет работать?
Я сделал попробуйте добавить rawurlencode($playlist)
как предложил другу, но все-таки не повезло:
if(move_uploaded_file($_FILES['upl']['tmp_name'], '../'.$acct_id.'/music/'.rawurlencode($playlist).'/'.$_FILES['upl']['name'])){
echo '{"status":"success"}';
exit;
}
Я попытаюсь объяснить по-другому.
Проблема в строке связана с переменной $playlist
, а не с именем файла.
Мне кажется, что ваше предложение помещает "rawurldecode"
на имя загружаемого файла.
Файлы, которые я загружаю, имеют пробелы, и они работают нормально, пока $playlist
не имеет пробелов, поэтому проблема связана с заголовком каталога, который помещается внутри $playlist
.
Я попытался:
- htmlentities($playlist)
- urlencode($playlist)
- urldecode($playlist)
- rawurlencode($playlist)
- rawurldecode($playlist)
ли это смысл? Пожалуйста, помогите ....
Удалите пространство с тире (-) или оцените (_), поскольку браузеры не поддерживают пространство в URL-адресе. –
Пользователи создают имена каталогов (например, «Greatest Hits» «Hits of the 1980s» и т. Д.). Это проблема UX, и я не могу требовать от пользователей создавать имена плейлистов без пробелов ... – NetTemple
Имена файлов имеют пробелы, и они загружаются, а именно строка $ playlist, вызывающая проблему. – NetTemple