|
|
|
| Здравствуйте, вот появился небольшой вопрос: Из базы данных беру значение(текст), содержащий одинарную кавычку. Это значение будет использоваться в строке браузера. Однако браузер выводит только часть этого значения - до одинарной кавычки, а при экранировании - ту же часть+обратный слеш.
Например,пытаюсь создать ссылку на скачивание файла. У меня в БД значение нужной ячейки - files/Music/Rock n' Roll.7z
В браузере выводит:
При экранировании -
http://localhost/Testsite/files/Music/Rock n\
|
Без экранирования -
http://localhost/Testsite/files/Music/Rock n
|
Т.е. доходит до кавычки и отбрасывает остальную часть ссылки. Соответственно, пишет, что такого файла нет. | |
|
|
|
|
|
|
|
для: Raptorx2
(17.03.2010 в 03:21)
| | Есть такая штука, как стандарт RFC-1738, которым почему-то могие пренебрегают.
rawurlencode() | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2010 в 09:25)
| | Функцию эту знаю, только думал, что она нужна при обработке символов нац. языков - русский и пр.
Однако появилась другая проблема - не может найти этот файл, хотя путь,вроде, указывает верно.
http://localhost/Testsite/files%2FMusic%2FRock%20n%27%20Roll.7z
|
The requested URL /Testsite/files/Music/Rock n' Roll.7z was not found on this server.
|
если нормально ввести
http://localhost/Testsite/files/Music/Rock n' Roll.7z
|
То скачивание идет. | |
|
|
|
|
|
|
|
для: Raptorx2
(17.03.2010 в 16:30)
| | Ок.
Пусть идет. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2010 в 16:47)
| | Ну а почему не находит
http://localhost/Testsite/files%2FMusic%2FRock%20n%27%20Roll.7z
The requested URL /Testsite/files/Music/Rock n' Roll.7z was not found on this server.
|
| |
|
|
|
|
|
|
|
для: Raptorx2
(17.03.2010 в 16:52)
| | в URI не должно быть пробелов. Да и апострофов тоже.
Совершенно очевидно, что в именах файлов этим символам тоже делать нечего. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2010 в 16:47)
| |
http://localhost/Testsite/files%2FMusic%2FRock+n%27+Roll.7z
|
The requested URL /Testsite/files/Music/Rock+n'+Roll.7z was not found on this server.
|
| |
|
|
|
|
|
|
|
для: Raptorx2
(17.03.2010 в 16:56)
| | а слэш / специально был заенкоден или случайно?
Кстати да. Вот и ответ на вопрос, почему не работает.
Слэш-то у Вас - не часть имени файла. Я бы сказал - наверняка не часть. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2010 в 16:58)
| | Использовал rawurlencode, как вы сказали. У меня в БД хранится путь в этому архиву (/files/Music/Rock n' Roll.7z), я его обрабатываю этой функцией. Т.е, Слеши обрабатываются. Сейчас сделаю, чтобы обрабатывалась только последняя часть строки - после всех слешей. | |
|
|
|
|
|
|
|
для: Raptorx2
(17.03.2010 в 17:06)
| | у Вас было бы меньше геморроя если бы имя хранимого файла было бы не Rock n' Roll.7z, а идентификатор строки БД соответствующий этому названию т.е. 56743.7z
к тому же я не знаю как эти архивы попадают к Вам и кто следит за одинаковыми именами файлов, а при использовании варианта с идентификатором про уникальность можно не думать в пределах разумного... | |
|
|
|
|
|
|
|
для: Valick
(17.03.2010 в 17:35)
| | это конечно разумнее, но имена использовал для удобства, чтобы можно было быстро различить загруженный контент по названию. | |
|
|
|
|
|
|
|
для: Raptorx2
(17.03.2010 в 17:06)
| | Я вообще-то сказал rawurlencode не использовать, а ознакомиться с . И в стандарт заглянуть.
Так что не надо. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2010 в 17:42)
| | Да, ошибка заключалась в этом и заключалась - вместо того, чтобы обрабатывать только имя файла, я обрабатывал весь путь к файлу, а соответственно и все слеши.
Trianon, огромное вам спасибо. | |
|
|
|