文件上传

This commit is contained in:
cwchen 2025-10-27 15:48:55 +08:00
parent 099d042536
commit 2256a3233c
3 changed files with 59 additions and 20 deletions

View File

@ -23,3 +23,27 @@ export function uploadLargeFileByOcr(data) {
data: data
})
}
// 上传小文件---5M以内
export function uploadSmallFile(data) {
return request({
url: '/smartBid/commonUpload/uploadSmallFile',
method: 'post',
headers: {
'Content-Type': 'multipart/form-data'
},
data: data
})
}
// 上传大文件---5M以上
export function uploadLargeFile(data) {
return request({
url: '/smartBid/commonUpload/uploadLargeFile',
method: 'post',
headers: {
'Content-Type': 'multipart/form-data'
},
data: data
})
}

View File

@ -33,7 +33,7 @@
<div v-else class="upload-text">
<div class="main-text"> + 点击或将文件拖拽到这里上传</div>
<div class="tip-text">
<div>文件大小上限 {{ maxFileTips }}</div>
<div>单份文件大小上限 {{ maxFileTips }}</div>
<div>支持文件类型{{ uploadType }}</div>
</div>
</div>
@ -43,7 +43,7 @@
</template>
<script>
import { uploadSmallFileByOcr, uploadLargeFileByOcr } from '@/api/common/uploadFile.js'
import { uploadSmallFileByOcr, uploadLargeFileByOcr, uploadSmallFile, uploadLargeFile } from '@/api/common/uploadFile.js'
export default {
name: 'UploadFile',
props: {
@ -89,6 +89,7 @@ export default {
},
methods: {
beforeUpload(file) {
alert(file.size);
//
if (this.isUploading) {
return false;
@ -103,7 +104,6 @@ export default {
//
const isLtMaxSize = file.size / 1024 / 1024 < this.maxSizeMB;
if (!isAllowedType || !isAllowedMimeType) {
this.$message.error(`只能上传 ${this.uploadType} 格式的文件!`);
return false;
@ -142,6 +142,7 @@ export default {
//
if (this.autoUpload && file.status === 'ready' && !this.isUploading) {
alert(this.fileUploadRule.fields_json);
if (this.fileUploadRule.fields_json) {
// ocr
this.uploadFile(file, '识别中');
@ -199,7 +200,20 @@ export default {
this.updateFileStatus(file.uid, 'uploading', text, null, 0);
try {
this.$bus.$emit('startUpload', text);
const res = this.defaultFileSize < file.size ? await uploadLargeFileByOcr(formData) : await uploadSmallFileByOcr(formData);
let res = null;
if (this.defaultFileSize < file.size) {
if (this.fileUploadRule.fields_json) {
res = await uploadLargeFileByOcr(formData);
} else {
res = await uploadLargeFile(formData);
}
} else {
if (this.fileUploadRule.fields_json) {
res = await uploadSmallFileByOcr(formData);
} else {
res = await uploadSmallFile(formData);
}
}
console.log('上传成功:', res);
this.$bus.$emit('endUpload');
// 100

View File

@ -9,24 +9,24 @@
<el-form-item label="文件上传" prop="fileList">
<UploadFile :fileList="form.fileList" @file-change="handleFileChange" @del-file="handleDelFile"
type="business_license" :uploadType="uploadType" :maxFileTips="maxFileTips"
:fileUploadRule="fileUploadRule" />
:fileUploadRule="fileUploadRule" :limitUploadNum="limitUploadNum" />
</el-form-item>
</el-form>
</div>
</template>
<script>
//
const fileType = 'technical_solution';
//
const uploadType = 'pdf、doc、docx';
//
const maxFileTips = '500MB';
//
const fileUploadRule = {
fileUploadType: 'technical_solution',
fields_json: '',
suffix: 'technical_solution_database'
//
const defaultParams = {
fileType: 'technical_solution',
uploadType: 'pdf、doc、docx',
maxFileTips: '1MB',
fileUploadRule: {
fileUploadType: 'technical_solution',
fields_json: '',
suffix: 'technical_solution_database'
},
limitUploadNum: 10
};
import UploadFile from '@/views/common/UploadFile.vue'
export default {
@ -42,10 +42,11 @@ export default {
},
data() {
return {
fileType: fileType,
uploadType: uploadType,
maxFileTips: maxFileTips,
fileUploadRule: fileUploadRule,
fileType: defaultParams.fileType,
uploadType: defaultParams.uploadType,
maxFileTips: defaultParams.maxFileTips,
fileUploadRule: defaultParams.fileUploadRule,
limitUploadNum: defaultParams.limitUploadNum,
form: {
fileList: [],
delFileList: []