Я пытаюсь загрузить байтовый массив, но изо всех сил пытаюсь заставить тип контента работать как image / png (он всегда идет как application / octet-stream независимо от того, что я делаю.).
Я проверил запрос через Charles Proxy и могу подтвердить, что он действительно всегда идет как application / octet-stream.
Мой код:
protected function onObjectLoaded(event:Event):void
{
var byteArray:ByteArray = new ByteArray();
var fileName:String = fileReference.name;
var uploadPath:String = serviceURL;
var parameters:Object = new Object();
parameters.key = serviceKey;
fileReference.data.readBytes(byteArray,0,fileReference.data.length);
var urlRequest:URLRequest = new URLRequest();
urlRequest.url = uploadPath;
urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData(fileName, byteArray, "fileupload", parameters);
urlRequest.requestHeaders.push( new URLRequestHeader( 'Content-type', 'image/png' ) );
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
/*urlLoader.addEventListener(Event.COMPLETE, onComplete);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onError);
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);*/
urlLoader.addEventListener(Event.COMPLETE, processResults);
urlLoader.load(urlRequest);
}
Как видите, я передаю тип контента как "multipart / form-data". Я попытался передать его как image / png, в результате чего сам запрос перешел как image / png, как и ожидалось, однако само изображение все еще идет как application / octet-stream.
Вот как выглядит мой запрос прямо сейчас:
- rojpkvwesrtjvrgjbwtadelavgcmxjot Содержание-расположение: форма-данные;
имя = "ключ"
WZL0NXBE6dcb9af80668bb96b86fa72f5595422c
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition: form-data;
Name = "Имя файла"
Canada.png
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition: form-data;
Name = "FileUpload"; filename = "Canada.png" Тип контента:
приложения / октет-поток
‰ PNG - Загрузка информации об изображении здесь в виде байтовой матрицы
Как видите, Canada.png передается как application / octet-stream. Я возился с запросом и вручную заставил его работать относительно того, что мой сервер ожидал получить, что точно так же, как указано выше, но где он говорит:
Canada.png
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition: form-data;
Name = "FileUpload"; filename = "Canada.png" Тип контента:
приложения / октет-поток
Следует сказать:
Canada.png
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition: form-data;
Name = "FileUpload"; filename = "Canada.png" Тип контента:
изображение / PNG
У меня вопрос, как это изменить, чтобы сам байтовый массив передавался как image / png вместо octet-stream
Это изображение загружается со стороны клиента и передается как FileReference, который я затем вызываю load (), а затем получаю его атрибут «data», где находится bytearray.
Любая помощь здесь будет принята с благодарностью, так как я боролся с этим в течение нескольких часов, но, похоже, не могу изменить тип mime для bytearray.
Заранее спасибо,