【发布时间】:2016-06-16 19:43:05
【问题描述】:
好的,我正在做一个 laravel 网络项目,我已经编写了这段代码(我在网上学到的)来上传视频和照片。上传图片时,此代码可以正常工作,因为它们很轻。但是当它处理视频时,它适用于轻量级视频,但会尝试冻结浏览器以查看 30MB 以上的视频。最烦人的部分是,当我尝试从移动设备上传(图片或视频)时,设备抱怨“由于内存不足而无法完成操作”事实上,此代码会冻结浏览器以获取大量视频并抱怨移动设备上的内存意味着它不够好(便携)。如果有更好的 sn-p 代码来完成这项工作,我将不胜感激(欢迎使用 jQuery)。
这就是我所拥有的
function uploadPhoto(url, photo) {
var token = $('#token').val();
var formData = new FormData();
formData.append('photo', photo);
formData.append('_token', token);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener('progress', progressHandler, false);
ajax.addEventListener('load', completeHandler, false);
ajax.addEventListener('error', errorHandler, false);
ajax.addEventListener('abort', abortHandler, false);
ajax.open('POST', url);
ajax.send(formData);
}
function uploadVideo() {
var route = $('#uploadUrl').val();
var token = $('#token').val();
var video = document.getElementById('postVideo').files[0];
var formData = new FormData();
formData.append('video', video);
formData.append('_token', token);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener('progress', progressHandler, false);
ajax.addEventListener('load', completeHandler, false);
ajax.addEventListener('error', errorHandler, false);
ajax.addEventListener('abort', abortHandler, false);
ajax.open('POST', route);
ajax.send(formData);
}
事件侦听器中的函数具有执行适当操作的代码,例如显示进度条..在此先感谢您的帮助
【问题讨论】:
标签: javascript jquery