2016-01-23 4 views
1

У меня есть загрузить изображение на сервере AWS S3 с следующим путем: https://dummy_momain/FeetPort/277/294/93/harwindersingh/2015-07-24/harwindersingh_2015-07-24_15:03:34:0660.jpegзакодировать URI загруженного изображения S3

, как я загрузить его с S3 браузером. это загрузить изображение и преобразовать его в следующий формат: http://192.168.21.145/277/93/harwindersingh/2015-07-24/harwindersingh_2015-07-24_15%253A03%253A34%253A0660.jpeg

, как я использовал яваскрипт функции побег, encodeURI и encodeURIComponent это преобразовать путь в: http://192.168.21.145/277/93/harwindersingh/2015-07-24/harwindersingh_2015-07-24_15%3A03%3A34%3A0660.jpeg

обе строка не mached. Мне нужна помощь в преобразовании

harwindersingh_2015-07-24_15: 03: 34: 0660.jpeg в harwindersingh_2015-07-24_15% 253A03% 253A34% 253A0660.jpeg формат.

+0

Вы пытаетесь решить проблему неправильно. '% 253A' указывает на то, что вы сделали ошибку во время * upload *, с': '>'% 3A'> '% 253A', показывающим двойное urlencoding. Ваш вопрос и предоставленный ответ, по сути, решают проблему «как я могу обеспечить, чтобы я мог совершить ту же ошибку?» Когда на самом деле вы должны пытаться выяснить, почему он загружен неправильно. –

+0

Файл был загружен с использованием файла AWS SDK .. файл, показанный в ведре правильно, но я загружаю файл с сторонним программным обеспечением .. может быть, это программное обеспечение преобразует его в этот формат. –

ответ

1

Похоже, если вы делаете encodeURIComponent два раза, вы можете это достичь. Я думаю, что в процессе загрузки и загрузки кодировка происходит два раза.

var string = encodeURIComponent(encodeURIComponent('harwindersingh_2015-07-24_15:03:34:0660.jpeg')); 
 

 
document.getElementById('a').innerHTML = string;
<div id="a"></div>

+0

отлично работает .. :) –