文件上传

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

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

View File

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