Blob使用Ajax上传图片PHP,ajax – 使用FormData进行JavaScript Blob上传

我上传一个在

javascript中创建的blob到我的服务器有问题.基本思想是用户上传图像,在javascript中,裁剪图像并在传输之前对其进行缩小.

图像处理工作正常,但上传本身不正常.以下是从canvas到blob的上传和转换的代码

function uploadCanvasData()

{

var canvas = $('#ImageDisplay').get(0);

var dataUrl = canvas.toDataURL("image/jpeg");

var blob = dataURItoBlob(dataUrl);

var formData = new FormData();

formData.append("file", formData);

var request = new XMLHttpRequest();

request.onload = completeRequest;

request.open("POST", "IdentifyFood");

request.send(formData);

}

function dataURItoBlob(dataURI)

{

var byteString = atob(dataURI.split(',')[1]);

var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]

var ab = new ArrayBuffer(byteString.length);

var ia = new Uint8Array(ab);

for (var i = 0; i < byteString.length; i++)

{

ia[i] = byteString.charCodeAt(i);

}

var bb = new Blob([ab], { "type": mimeString });

return bb;

}

服务器声称没有上传任何文件,当我使用chrome来检查请求时,我看到请求的负载为:

------WebKitFormBoundaryyzYbm61DKgS09tpB

Content-Disposition: form-data; name="file"

[object FormData]

------WebKitFormBoundaryyzYbm61DKgS09tpB--

与输入type =“file”提交的表单的有效内容相反,

------WebKitFormBoundaryUOn3WXb7pKLmOxRZ

Content-Disposition: form-data; name="imagefile"; filename="-3YQHiVaGWo.jpg"

Content-Type: image/jpeg

------WebKitFormBoundaryUOn3WXb7pKLmOxRZ--

所以看起来像我的XMLHttpRequest只是上传调用blob.toString()的结果,

有谁知道我在这里做错什么?我应该使用更好的方法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值