使用XMLHttpRequest上载在移动设备上不起作用
Upload using XMLHttpRequest not working on mobile
大家好,我目前正在开发一个使用XMLHttpRequest
的上传功能。它在网络浏览器上运行得很好,但当我在手机上测试它时,它已经不起作用了。以下是在手机上选择照片后的错误日志:
E/chrome(2604):[错误:layer_tree_host_impl.cc(2121)]强制由于工作环境缺少,零拷贝磁贴初始化
我已经添加了人行横道
这是我在客户端上的代码:
if(fileInfo.size <= 20000000) {
var xhr = new XMLHttpRequest();
xhr.open('POST', '/uploadSomeWhere', true);
xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
if (xhr.upload) {
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
display.innerText = Math.floor((e.loaded / e.total) * 100) + '%';
bootstrapPB.style.width = Math.floor((e.loaded / e.total) * 100) + '%';
}
}
xhr.upload.onloadstart = function() {
display.innerText = '0%';
bootstrapPB.style.width = '0%';
}
}
xhr.send(fileInfo);
} else {
LocalState.set("mainError", "Please upload a file not more than 20MB");
}
在我的服务器中:
WebApp.connectHandlers.use('/uploadSomeWhere',function(req,res){
function makeid()
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 10; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
var uniquePhotoId = makeid();
var originalPhoto = "/"+uniquePhotoId+"_original/";
fs.mkdirSync("/home/dating/contents/"+originalPhoto);
var file2 = fs.createWriteStream("/home/dating/contents"+originalPhoto+uniquePhotoId);
file2.on('error',function(error){if(error){
throw new Meteor.Error("Filed to upload image");
}});
file2.on('finish',function(){
res.writeHead(200, {"content-type":"text/html"});
res.end();
});
req.pipe(file2);
// Set timeout to fully capture and convert the image
setTimeout(function(){
imageMagick(file2.path).autoOrient().setFormat("jpg").write(file2.path, function(){
req.pipe(file2);
});
}, 1000);
req._events.close;
});
请告知出了什么问题。非常感谢。顺便说一下,我正在使用ReactJS和Meteor创建一个混合移动应用程序。
我不确定xhr是否没有发送数据,或者服务器是否没有接受来自xhr 的发送数据
在reactjs中使用xhr似乎确实存在问题,所以我所做的是使用FileReader将图像从文件输入转换到缓冲区base64,然后从那里我使用服务器中的FS节点将缓冲区base64转换为图像,然后将其上传到目录。
现在一切都很好:)
相关文章:
- XMLHttpRequest在移动设备上的chrome上不起作用
- 下拉式父菜单链接在移动设备中不起作用
- 我的响应菜单在移动版中不起作用
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- Angular js过滤器在某些移动设备上不起作用
- Jquery移动转换复选框在Jquery onclick函数()中第二次选中不起作用
- html视频javascript播放方法在移动Safari中不起作用
- HTML 不加载 CSS ,刷新后一切正常.同样在移动设备上,它在首次加载时不起作用
- 铬移动;导航.地理位置不起作用
- 移动导航菜单不起作用(HTML,CSS和JQuery)
- jQuery .play() 在移动 Safari 上不起作用
- overflow-x:隐藏在移动设备上不起作用
- 鼠标点击不会'不起作用,鼠标移动可以
- 在编译jquery移动代码时,Script标记在Eclipse Phonegap中不起作用
- I'我试图用一个按钮随意移动一个CSS元素,我试图使用偏移量,但onlick不起作用
- jQuery:jQuery.val()在移动Safari和Chrome中不起作用
- 在移动设备领域,空白:nowrap;溢出:隐藏;文本溢出:省略号;有点不起作用
- 第二个ajax请求在移动浏览器上不起作用
- 移动响应表单不起作用
- 在 Javascript 中使用 setTimeout 移动文本不起作用