浦東新區(qū)建設(shè)和交通委員會網(wǎng)站百度快速排名優(yōu)化工具
云點播是專門應(yīng)對上傳大視頻文件的。
騰訊云點播文檔:https://cloud.tencent.com/document/product/266/18177
這個文檔比較簡單,實在不行,把demo下載下來,一看就明白了,然后再揉一下挪到自己的項目里。完事。
getSignature: function(callback) {
uni.request({
url: ‘https://www.xxx.com/mnp/zsapi/getSignature.php’,
method: ‘POST’,
data: {
mid: uni.getStorageSync(‘mid’),
token: uni.getStorageSync(‘token’)
},
header: {
‘content-type’: ‘a(chǎn)pplication/x-www-form-urlencoded’
},
success: function(res) {
if (res.data.signature) {
callback(
res.data.signature
);
} else {
return ‘獲取簽名失敗’;
}
}
});
},
ChooseImage(e) {
console.log(e)
let that = this
// 選擇多張圖片
uni.chooseMedia({
count: 15, // 最多可以選擇的圖片張數(shù)
mediaType: [‘image’, ‘video’],
sizeType: [‘compressed’], // 可以指定是原圖還是壓縮圖
sourceType: [‘a(chǎn)lbum’], // 可以指定來源是相冊還是相機
// maxDuration: 30,
// camera: ‘back’,
success: function(res) {
console.log(res, res.tempFiles[0], ‘???’)
if (res.type == ‘video’) {
if (e == ‘0’) {
uni.showToast({
title: ‘第一張必須上次圖片’,
duration: 2000,
icon: ‘none’
})
return
}
//選擇視頻
that.videoFile = res.tempFiles[0]
setTimeout(() => {
that.startUpload(e)
}, 500)
} else {// 選擇圖片成功,res.tempFiles 包含選擇的圖片路徑列表uni.showLoading({title: '上傳中...'})// console.log(res.tempFiles)that.uploadDIY( res.tempFiles, 0, 0, 0, res.tempFiles.length,e);returnfor (let i = 0; i < res.tempFiles.length; i++) {uni.uploadFile({url: 'https://www.xxx.com/mnp/zsapi/gongdi_upload.php',filePath: res.tempFiles[i].tempFilePath,name: 'file',formData: {'mid': uni.getStorageSync('mid'),'token': uni.getStorageSync('token'),},success(res) {const data = JSON.parse(res.data.replace('\uFEFF',''))console.log(data)if (data.bs == 'success') {uni.showToast({title: data.errmsg,duration: 2000,icon: 'success'})that.infolist[e].imglist.push(data.img)} else if (data.bs == 'guoqi') {uni.showToast({title: data.errmsg,duration: 2000,icon: 'error'})setTimeout(function() {uni.redirectTo({url: '../../pagesD/login/login'})}, 500)} else {uni.showToast({title: data.errmsg,duration: 2000,icon: 'error'})}},fail() {uni.showToast({title: '服務(wù)器繁忙,請稍后再試',duration: 2000,icon: 'error'})}})}}}})},startUpload(e) {let that = thisuni.showLoading({title: '上傳中...',mask: true,})const self = this;const uploader = VodUploader.start({mediaFile: self.videoFile, //必填,把chooseVideo回調(diào)的參數(shù)(file)傳進來getSignature: self.getSignature, //必填,獲取簽名的函數(shù)error: function(result) {console.log("error");console.log(result);// uni.hideLoading();uni.showModal({title: "上傳失敗",content: JSON.stringify(result),showCancel: false});},progress: function(result) {console.log("progress");console.log(result);// uni.hideLoading();self.progress = parseInt(result.percent * 100)},finish: function(result) {console.log("finish");console.log(result);let brr = []let obj = {}obj.url = result.videoUrlbrr.push(`myvideo${e}`)that.videoarr = brrobj.id = `myvideo${e}`self.infolist[e].videolist.push(obj)uni.showToast({title: '上傳成功',duration: 2000,icon: 'success'})self.reset();}});this.uploader = uploader},uploadDIY(filePaths, successUp, failUp, i, length,e) {let that = thisuni.uploadFile({url: 'https://www.xxxx.com/mnp/zsapi/gongdi_upload.php',filePath: filePaths[i].tempFilePath,name: 'file',formData: {'mid': uni.getStorageSync('mid'),'token': uni.getStorageSync('token'),},success: (res) => {const data = JSON.parse(res.data.replace('\uFEFF',''))if (data.bs == 'success') {uni.showToast({title: data.errmsg,duration: 2000,icon: 'success'})successUp++;// console.log('上傳圖片成功:', JSON.parse(res.data));// var data = JSON.parse(res.data);// console.log(data)// 把獲取到的路徑存入imagesurl字符串中that.infolist[e].imglist.push(data.img)// console.log(this.data.imagesurl)} else if (data.bs == 'guoqi') {uni.showToast({title: data.errmsg,duration: 2000,icon: 'error'})setTimeout(function() {uni.redirectTo({url: '../../pagesD/login/login'})}, 500)} else {uni.showToast({title: data.errmsg,duration: 2000,icon: 'error'})}},fail: (res) => {failUp++;},complete: () => {i++;if (i == length) {// Toast('總共' + successUp + '張上傳成功,' + failUp + '張上傳失敗!');} else { //遞歸調(diào)用uploadDIY函數(shù)that.uploadDIY(filePaths, successUp, failUp, i, length,e);}},});},