2010-05-08 2 views
0

Я строю сайт, где пользователи могут загружать свои mp3s, и я столкнулся с небольшой проблемой, что я не могу решить:PHP mp3 загрузить с пробелами в имени файла

Выгрузка прекрасно работает, но только тогда, когда пользователь выбирает mp3-файл, который не имеет пробелов в своем mp3-файле. Такой файл, как «My nice mp3 file.mp3», приведет к NULL файла $ _FILES ['file']. Это связано с конфигурациями сервера?

У кого-нибудь есть идея, как это решить? Кроме объясняющего пользователь просто загрузить MP3files без пробелов в именах, то есть :-)

Thanx,

Maenny

+0

Происходит ли это в каждом браузере/используются ли какие-либо клиентские скрипты для повышения параметров загрузки (например, для выбора нескольких файлов)? –

+0

нет У меня нет возможности добавления загрузки, но atm Я тестировал только скрипт на Firefox и chrome – Maenny

ответ

0

Имя файла удаленного файла (клиент) не должен влиять, как это транспортируется на сервер. Вы уверены, что это проблема?

+0

Да, я уверен, см. Комментарий к двум ответам позже. – Maenny

0

Попробуйте ввести urlencode() ваше имя файла.

Если это не сработает, попробуйте rawurlencode().

Если это не сработает, я отправляюсь знак :)

+0

Я попробую это, спасибо за совет – Maenny

+0

Просто, чтобы быть уверенным: как именно вы будете обрабатывать кодировку? То есть, КОГДА я должен urlencode(). У меня есть форма с И action = "myscript.php". В myscript.php я использую $ _FILES ['файл']. Должен ли я кодировать $ _FILES-var? – Maenny

+0

Это, вероятно, не проблема с PHP. Это в Windows? Известны проблемы с некоторыми версиями IE. Если это ваша проблема, PHP даже не получает файл. –

1

Как другие пользователи сказали, что это, вероятно, не пробелы, вызывающие проблему. Моей первой мыслью было проверить, что ваш upload_limit для PHP установлен достаточно высоким. Помните также, что независимо от того, что пользователь назвал своим файлом, вы НИКОГДА не должны хранить его с этим именем на сервере - слишком большой риск потенциальной дыры в безопасности делает это.

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

+0

Ну, я сделал именно это - тот же файл с пробелами не сработает, потому что он работает отлично. И да, я переименую все файлы, загруженные на сервер, но тем не менее, если у меня есть NULL как $ _FILES ['file'], мне нечего переименовывать ...И я также установил upload_limit PHP в двойное ограничение размера файла, которое я использую в скрипте ... – Maenny

+0

Установлен ли параметр php.ini file_uploads в On? У меня заканчиваются возможные причины, почему это происходит. –

+0

Да, конечно, если нет, file_upload вообще не работает, не так ли? – Maenny

0

Пространства не должны вызывать эту проблему. У меня есть MP3-загрузчик на моем сайте, и у меня нет проблем с пробелами. Я тестировал «Test Name.mp3», и он работал нормально.

http://www.the-mag.me.uk/Music/Articles/Item/Add-Your-Music/

Чтобы помочь диагностировать любые потенциальные проблемы, попробуйте сброс из содержимого массива $ _FILES и проверить, если что-то там дает вам ключ.

print_r($_FILES); 
+0

Ну, результат print_r ($ _ FILES) равен NULL, но, как сказано, только если в названии есть пробелы. – Maenny

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