gpt4 book ai didi

apache-flex - 通过URLRequest上传字节数组

转载 作者:行者123 更新时间:2023-12-04 02:55:04 24 4
gpt4 key购买 nike

我正在尝试上传一个字节数组,但是正在努力使内容类型成为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 Content-Disposition:表单数据;
name =“ key”

WZL0NXBE6dcb9af80668bb96b86fa72f5595422c
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition:表单数据;
name =“文件名”

Canada.png
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition:表单数据;
name =“ fileupload”; filename =“ Canada.png”内容类型:
应用/八位字节流

‰PNG-此处以字节数组形式加载图像信息


如您所见,Canada.png将作为application / octet-stream传递。关于服务器预期收到的请求,我已经弄弄了这个请求,并手动使其生效,这与上面的请求完全相同,但是它说:


Canada.png
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition:表单数据;
name =“ fileupload”; filename =“ Canada.png”内容类型:
应用/八位字节流


应该说:


Canada.png
--rojpkvwesrtjvrgjbwtadelavgcmxjot Content-Disposition:表单数据;
name =“ fileupload”; filename =“ Canada.png”内容类型:
图片/ png


我的问题是如何更改它,因此字节数组本身以image / png而不是八位字节流的形式传递

该图像是从客户端上传的,并作为FileReference传递,然后我调用load(),然后获取它的“数据”属性,该属性是字节数组所在的位置。

非常感谢这里的任何帮助,因为我已经为此苦苦挣扎了几个小时,但似乎无法更改字节数组的mime类型。

提前致谢,

最佳答案

您请求中的内容类型是在UploadPostHelper类中设置的。据我所知,它被硬编码为application / octet-stream。如果您仅要上传png图片,则可以将其更改为image / png。或者,您可以使用另一个url请求包装器上传文件,该文件允许您指定文件的内容类型。例如MultipartURLLoader

关于apache-flex - 通过URLRequest上传字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com