上传应答文件更改

This commit is contained in:
ygs
2025-07-23 15:24:12 +08:00
parent 354b7f3cad
commit 5b76717c10
2 changed files with 63 additions and 48 deletions

View File

@ -23,7 +23,7 @@ function isIE() {
}
}
/**
/**
* 大文件上传组件
*/
export default class ReactResumableJs extends React.Component {
@ -129,7 +129,7 @@ export default class ReactResumableJs extends React.Component {
</div>
<div style={{ display: this.state.isSupported ? '' : 'none' }}>
{
isIE() ?
isIE() ?
<div className="redCenter">推荐使用谷歌、火狐、360浏览器的极速模式下上传文件</div> : null
}
<div className="resumable-drop">
@ -184,7 +184,7 @@ export default class ReactResumableJs extends React.Component {
/**
* 格式化计时器
* @param {*} value
* @param {*} value
*/
__format(value) {
if (value < 10) {
@ -221,14 +221,17 @@ export default class ReactResumableJs extends React.Component {
/**
* 添加文件时的监听
*
* @param {*} file
*
* @param {*} file
*/
__fileAddedListener(resumable) {
// 更新文件队列表单
let strIndex = resumable.fileName.lastIndexOf(".")
let fileSuffix = resumable.fileName.substring(strIndex + 1, resumable.fileName.length)
if (this.props.fileAccept == ('.' + fileSuffix)) {
const allowedTypes = this.props.fileAccept.split(',').map(type => type.trim().toLowerCase());
// 判断文件后缀
// if (this.props.fileAccept == ('.' + fileSuffix)) {
if (allowedTypes.includes('.' + fileSuffix)) {
let _cache = this.state.fileList;
_cache.length = 0;
_cache.push({
@ -261,7 +264,7 @@ export default class ReactResumableJs extends React.Component {
getTendererFileStatus(data).then((res) => { // 判断是否已投标
if (res.code == 200) {
if(res.data == false){
var fileReader = new FileReader();
if (fileReader.readAsBinaryString === undefined) {
FileReader.prototype.readAsBinaryString = function (fileData) { //解决ie11 大文件堆栈溢出的问题for arrayBufferToString
@ -279,7 +282,7 @@ export default class ReactResumableJs extends React.Component {
}
reader.readAsArrayBuffer(fileData);
}
}
}
fileReader.readAsBinaryString(resumable.file);
fileReader.onload = e => {
resumable.uniqueIdentifier = SparkMD5.hashBinary(e.target.result);
@ -324,7 +327,7 @@ export default class ReactResumableJs extends React.Component {
/**
* 文件上传进度播报
* @param {*} file
* @param {*} file
*/
__fileProgressListener(file) {
// 更新文件队列表单
@ -341,7 +344,7 @@ export default class ReactResumableJs extends React.Component {
/**
* 文件上传完成
* @param {*} file
* @param {*} file
*/
__fileSuccessListener(file) {
let _cache = this.state.fileList;
@ -381,7 +384,7 @@ export default class ReactResumableJs extends React.Component {
/**
* 文件上传失败
* @param {*} file
* @param {*} file
*/
__fileErrorListener(file) {
// 更新文件队列表单
@ -401,7 +404,7 @@ export default class ReactResumableJs extends React.Component {
}
}
/**
/**
* 移除上传列表中的文件
*/
__removeFile(filename) {
@ -444,7 +447,7 @@ export default class ReactResumableJs extends React.Component {
this.setState({ fileList: _cache, timer: 0 });
}
/**
/**
* 暂停上传
*/
__uploadPause(filename) {
@ -468,7 +471,7 @@ export default class ReactResumableJs extends React.Component {
}
}
/**
/**
* 恢复上传
*/
__uploadResum(filename) {

View File

@ -273,7 +273,8 @@ const Index: React.FC<{}> = () => {
if (index == 'single') {
currentDate = val
setEndTime(new Date(val.endDate).getTime())
filetype = '.file'
// filetype = '.file'
filetype = '.rar,.zip,.doc,.docx,.xls,.xlsx,.pdf'
object = JSON.stringify(val)
path = '/' + val.createYear + '/' + val.tpId + '/' + val.sectionId + '/' + val.tdocId + '/uploadFile/' + val.tendererId
} else {
@ -312,10 +313,10 @@ const Index: React.FC<{}> = () => {
/**
* 大文件上传完成后的组件返回
*
* @param file
* @param resumable
* @param callback
*
* @param file
* @param resumable
* @param callback
*/
const onUploadSuccess = (file: any, cache: any, callback: any) => {
cache.push({
@ -346,34 +347,42 @@ const Index: React.FC<{}> = () => {
clearInterval(task);
} else {
if (switchBtn) {
getDecrypt(uuid).then((res) => {
if (res.code == 200) {
if (res.data.consumptionState == '2' || res.data.consumptionState == '4') {
if (res.data.stateMessage) {
message.error(res.data.stateMessage)
callback(cache.length - 1, res.data.stateMessage, 2);
} else {
message.error('验证错误,请刷新页面后重新上传!')
callback(cache.length - 1, "文件验证失败", 2);
}
switchBtn = false;
clearInterval(task);
return;
} else if (res.data.consumptionState == '3') {
message.success(res.data.stateMessage)
setTimeout(() => {
message.destroy()
}, 3000)
test = 100;
callback(cache.length - 1, "文件验证成功", test);
switchBtn = false;
clearInterval(task);
return;
} else {
callback(cache.length - 1, "文件验证中", test);
}
}
})
setTimeout(() => {
message.destroy()
}, 3000)
test = 100;
callback(cache.length - 1, "文件验证成功", test);
switchBtn = false;
clearInterval(task);
return;
// getDecrypt(uuid).then((res) => {
// if (res.code == 200) {
// if (res.data.consumptionState == '2' || res.data.consumptionState == '4') {
// if (res.data.stateMessage) {
// message.error(res.data.stateMessage)
// callback(cache.length - 1, res.data.stateMessage, 2);
// } else {
// message.error('验证错误,请刷新页面后重新上传!')
// callback(cache.length - 1, "文件验证失败", 2);
// }
// switchBtn = false;
// clearInterval(task);
// return;
// } else if (res.data.consumptionState == '3') {
// message.success(res.data.stateMessage)
// setTimeout(() => {
// message.destroy()
// }, 3000)
// test = 100;
// callback(cache.length - 1, "文件验证成功", test);
// switchBtn = false;
// clearInterval(task);
// return;
// } else {
// callback(cache.length - 1, "文件验证中", test);
// }
// }
// })
}
}
}, 3000);
@ -416,7 +425,10 @@ const Index: React.FC<{}> = () => {
} else {
let strIndex = resumable.fileName.lastIndexOf(".")
let fileSuffix = resumable.fileName.substring(strIndex + 1, resumable.fileName.length)
if (('.' + fileSuffix) != fileT) {
// 判断文件类型
const fileTypes = fileT.split(',').map((type: string) => type.trim().toLowerCase());
// if (('.' + fileSuffix) != fileT) {
if (!fileTypes.includes('.' + fileSuffix)) {
message.error('请上传' + fileT + '类型的文件')
} else if (fileSuffix == 'file' && resumable.file.size > 200 * 1024 * 1024) {
message.error('文件最大为200MB')