112 lines
2.4 KiB
Vue
112 lines
2.4 KiB
Vue
<template>
|
||
<view>
|
||
<ali-oss-uploader
|
||
:max-count="1"
|
||
:max-size="100"
|
||
:type="artisanType+1"
|
||
:user-id="userId"
|
||
:kind="2"
|
||
:file-string="video"
|
||
accept="video/*"
|
||
button-text="上传视频"
|
||
@success="onUploadSuccess"
|
||
@error="onUploadError"
|
||
@delete="onFileDelete"
|
||
>
|
||
</ali-oss-uploader>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import request from '../../utils/request'
|
||
import AliOssUploader from '../../components/ali-oss-uploader/ali-oss-uploader.vue'
|
||
export default {
|
||
components: {
|
||
AliOssUploader
|
||
},
|
||
data() {
|
||
return {
|
||
fileList: [],
|
||
video: '',
|
||
userId: 34,
|
||
artisanType: 1
|
||
}
|
||
},
|
||
methods: {
|
||
async chooseImage() {
|
||
// all
|
||
try {
|
||
const files = await uni.chooseFile({
|
||
count: 1,
|
||
type: 'image'
|
||
})
|
||
console.log(files)
|
||
let file = files.tempFiles[0];
|
||
let filename = files.tempFiles[0].name;
|
||
request.post('/user/getalioss',{type: 1,kind: 1})
|
||
.then(data => {
|
||
const formData = new FormData();
|
||
formData.append('name',filename);
|
||
formData.append('policy', data.policy);
|
||
formData.append('OSSAccessKeyId', data.ossAccessKeyId);
|
||
formData.append('success_action_status', '200');
|
||
formData.append('signature', data.signature);
|
||
formData.append('key', data.dir + filename);
|
||
// file必须为最后一个表单域,除file以外的其他表单域无顺序要求。
|
||
formData.append('file', file);
|
||
fetch(data.host, { method: 'POST', body: formData},).then((res) => {
|
||
console.log(res);
|
||
alert('文件已上传');
|
||
});
|
||
})
|
||
.catch(error => {
|
||
console.log('Error occurred while getting OSS upload parameters:', error);
|
||
});
|
||
} catch (e) {
|
||
console.error('选择文件出错:', e)
|
||
}
|
||
},
|
||
onUploadSuccess({ file, fileList }) {
|
||
console.log('上传成功:', file)
|
||
},
|
||
onUploadError({ error, file }) {
|
||
console.error('上传失败:', error)
|
||
},
|
||
onFileDelete({ error, file }) {
|
||
console.error('上传失败:', error)
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style>
|
||
|
||
.image-preview,
|
||
.upload-btn {
|
||
width: 200rpx;
|
||
height: 200rpx;
|
||
margin-bottom: 20rpx;
|
||
position: relative;
|
||
}
|
||
|
||
.preview-video,
|
||
.preview-image {
|
||
width: 200rpx;
|
||
height: 200rpx;
|
||
border-radius: 8rpx;
|
||
margin-right: 18rpx;
|
||
}
|
||
|
||
.upload-btn {
|
||
border: 2rpx dashed #DDDDDD;
|
||
border-radius: 8rpx;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
|
||
.plus-icon {
|
||
font-size: 60rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
</style> |