Избыточный символ в полезной нагрузке POST - PullRequest
1 голос
/ 02 октября 2011

Я создаю расширение Chrome, в котором я имитирую форму POST для отправки изображений на сервер.Мне удалось загрузить файл, но его содержимое искажено.Сравнивая массив байтов загруженного и оригинального, можно заметить, что каждый байт> 127 преобразуется в 2 других байта.

Например: 137 -> 194 137

   233 -> 195 169 

Полезная нагрузка POST в инструменте разработчика Chrome предполагает добавление избыточного байта перед отправкой запроса.

Мой оригинальный файл Содержимое:

   ‰PNG ....

И содержимое, записанное в веб-содержимом

   ‰PNG ....

Символ, который не должен быть там, предшествуетсодержание.У вас есть идеи, как избежать этой проблемы?Ниже приведен код, который я использую для проверки:

        var fr = new FileReader();
        fr.onloadend = function(evt){

            if(evt.target.readyState == FileReader.DONE){
                                    //str - image content
                var str = "";
                var byteStr = "";
                var dv = new DataView(evt.target.result);
                console.log("data length = " + evt.target.result.byteLength);
                for(var i = 0 ; i < evt.target.result.byteLength; i++){
                  var b1 = dv.getUint8(i);
                  str += String.fromCharCode(b1);
                  byteStr += b1 + " ";

                }

                console.log(str);
                console.log(byteStr);
                                 //use jQuery.ajax to post image to server
                attachImage(str, file.name,file.type);
            }
        }

        fr.readAsArrayBuffer(file);

Заранее спасибо.

1 Ответ

0 голосов
/ 10 октября 2011

спасибо другу за указание на этот пост: Отправка изображений из элементов Canvas с использованием Ajax и PHP $ _FILES

Теперь моя проблема может быть решена.Подход использует xhr sendasbinary, чтобы избежать проблемы с кодировкой.

С уважением

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