gpt4 book ai didi

html - 在 Chrome 上通过 XHR 发送图像文件

转载 作者:行者123 更新时间:2023-11-27 22:44:59 26 4
gpt4 key购买 nike

我正在使用 HTML5 拖放操作从用户的计算机获取图像并想将它们上传到我的 Rails 服务器(在该端使用 Carrierwave)。我不知道我到底在做什么,但是从这些说明中拼凑了这段代码 http://code.google.com/p/html5uploader/wiki/HTML5Uploader

这会返回 500 错误 - 谁能帮我看看我做错了什么?

var files = e.dataTransfer.files;
if (files.length){
for (var i = 0; i<files.length; i++) {
var file = files[i];
var reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = function() {
var bin = reader.result;
var xhr = new XMLHttpRequest();
var boundary = 'xxxxxxxxx';
xhr.open('POST', '/images?up=true&base64=true', true);
xhr.setRequestHeader('content-type', 'multipart/form-data; boundary=' + boundary);
xhr.setRequestHeader('UP-FILENAME', file.name);
xhr.setRequestHeader('UP-SIZE', file.size);
xhr.setRequestHeader('UP-TYPE', file.type);
xhr.send(window.btoa(bin));
};
};
};

最佳答案

有几件事可能是罪魁祸首。您以二进制字符串形式读取文件,然后创建多部分请求,然后发送 base64 编码值。

无需读取文件或搞乱 base64 编码。相反,只需构造一个 FormData 对象,附加文件,然后使用 xhr.send(formData) 直接发送它。看我的回复here .

关于html - 在 Chrome 上通过 XHR 发送图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098128/

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