好的,我正在編寫一個laravel web項目,我已經編寫了這個代碼(我在線學習)來上傳視頻和照片。上傳圖片時,此代碼工作正常,因爲它們很輕。但是,當它到達視頻時,它對於輕視頻效果不錯,但試圖凍結瀏覽器以獲得30MB以上的視頻。最令人討厭的部分是,當我嘗試從手機上傳(圖片或視頻)時,該設備抱怨'由於內存不足而無法完成操作',因爲此代碼凍結瀏覽器以查看重量級視頻並抱怨移動設備上的內存意味着不夠好(便攜)。請欣賞有更好的代碼片段來完成這項工作(jQuery歡迎)。編寫便攜式js上傳代碼(JS代碼在桌面上工作,並在移動設備上失敗)
這裏是我有什麼
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);
}
在事件偵聽器的功能已代碼採取適當行動等預先顯示進度bar..Thanks的幫助
好的,謝謝@Andrei M.我會詳細介紹一下您提供的資源 –