Преобразовать между URL и именем файла Windows (AIR)? - PullRequest
0 голосов
/ 27 ноября 2011

Я пытаюсь сохранить изображения на диск в приложении AIR для смартфонов. Мне нужен метод, который может безопасно преобразовывать веб-URL-адреса в допустимые имена файлов на Android и iOS (если он сохранит совместимость с Windows / Mac, это было бы хорошо.), И я могу вернуть исходный полный URL-адрес из имени файла. Например:
Ввод:
http://www.google.hu/search?client
Кодированный формат - это что-то вроде (это всего лишь пример, который я сейчас выяснил):
HTTP% d% s% swww.google.com% TSearch% rclient% г

И мне нужен метод, чтобы преобразовать его обратно. Я посмотрел на BASE64 - но это позволяет использовать символ "/", и я боюсь использовать HEX-кодировку, потому что это будет генерировать очень длинные имена файлов, а URL-адреса могут быть длинными.
Согласно другому вопросу, в iOS максимальная длина пути составляет 1024 байта: максимальная длина имени файла

У кого-нибудь есть решение для AIR? По сути, это тот же вопрос, что и Преобразовать между URL-адресом и именем файла Windows (Java)? - только для AIR, iOS, Android.

Или я должен просто изменить кодер BASE64 и сделать несколько хаков для длинных имен файлов?

1 Ответ

1 голос
/ 27 ноября 2011

Почему бы не использовать escape () и unescape (), которые по существу заменяют всех злых персонажей на безопасных.Аналогично функции escape () в JavaScript.

( РЕДАКТИРОВАТЬ ) Я исправлен, в дополнение к escape, вам все равно придется заменить символы косой черты и звездочки (/ *), а также любые другие недопустимые символы, как вы указалииз.

Из любопытства, почему бы просто не написать отдельный текстовый файл с URL-адресом в нем и назвать его так же, как ваше изображение?Или даже использовать базу данных?Это должно гарантировать, что вы никогда не получите сумасшедший длинный URL, превышающий максимальный предел имени файла, и вам не придется беспокоиться об экранировании / преобразовании символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...