上传应答文件更改
This commit is contained in:
31
src/components/Upload/react-resumable.js
vendored
31
src/components/Upload/react-resumable.js
vendored
@ -23,7 +23,7 @@ function isIE() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 大文件上传组件
|
* 大文件上传组件
|
||||||
*/
|
*/
|
||||||
export default class ReactResumableJs extends React.Component {
|
export default class ReactResumableJs extends React.Component {
|
||||||
@ -129,7 +129,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
<div style={{ display: this.state.isSupported ? '' : 'none' }}>
|
<div style={{ display: this.state.isSupported ? '' : 'none' }}>
|
||||||
{
|
{
|
||||||
isIE() ?
|
isIE() ?
|
||||||
<div className="redCenter">推荐使用谷歌、火狐、360浏览器的极速模式下上传文件</div> : null
|
<div className="redCenter">推荐使用谷歌、火狐、360浏览器的极速模式下上传文件</div> : null
|
||||||
}
|
}
|
||||||
<div className="resumable-drop">
|
<div className="resumable-drop">
|
||||||
@ -184,7 +184,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 格式化计时器
|
* 格式化计时器
|
||||||
* @param {*} value
|
* @param {*} value
|
||||||
*/
|
*/
|
||||||
__format(value) {
|
__format(value) {
|
||||||
if (value < 10) {
|
if (value < 10) {
|
||||||
@ -221,14 +221,17 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加文件时的监听
|
* 添加文件时的监听
|
||||||
*
|
*
|
||||||
* @param {*} file
|
* @param {*} file
|
||||||
*/
|
*/
|
||||||
__fileAddedListener(resumable) {
|
__fileAddedListener(resumable) {
|
||||||
// 更新文件队列表单
|
// 更新文件队列表单
|
||||||
let strIndex = resumable.fileName.lastIndexOf(".")
|
let strIndex = resumable.fileName.lastIndexOf(".")
|
||||||
let fileSuffix = resumable.fileName.substring(strIndex + 1, resumable.fileName.length)
|
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;
|
let _cache = this.state.fileList;
|
||||||
_cache.length = 0;
|
_cache.length = 0;
|
||||||
_cache.push({
|
_cache.push({
|
||||||
@ -261,7 +264,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
getTendererFileStatus(data).then((res) => { // 判断是否已投标
|
getTendererFileStatus(data).then((res) => { // 判断是否已投标
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
if(res.data == false){
|
if(res.data == false){
|
||||||
|
|
||||||
var fileReader = new FileReader();
|
var fileReader = new FileReader();
|
||||||
if (fileReader.readAsBinaryString === undefined) {
|
if (fileReader.readAsBinaryString === undefined) {
|
||||||
FileReader.prototype.readAsBinaryString = function (fileData) { //解决ie11 大文件堆栈溢出的问题(for arrayBufferToString)
|
FileReader.prototype.readAsBinaryString = function (fileData) { //解决ie11 大文件堆栈溢出的问题(for arrayBufferToString)
|
||||||
@ -279,7 +282,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
}
|
}
|
||||||
reader.readAsArrayBuffer(fileData);
|
reader.readAsArrayBuffer(fileData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fileReader.readAsBinaryString(resumable.file);
|
fileReader.readAsBinaryString(resumable.file);
|
||||||
fileReader.onload = e => {
|
fileReader.onload = e => {
|
||||||
resumable.uniqueIdentifier = SparkMD5.hashBinary(e.target.result);
|
resumable.uniqueIdentifier = SparkMD5.hashBinary(e.target.result);
|
||||||
@ -324,7 +327,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传进度播报
|
* 文件上传进度播报
|
||||||
* @param {*} file
|
* @param {*} file
|
||||||
*/
|
*/
|
||||||
__fileProgressListener(file) {
|
__fileProgressListener(file) {
|
||||||
// 更新文件队列表单
|
// 更新文件队列表单
|
||||||
@ -341,7 +344,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传完成
|
* 文件上传完成
|
||||||
* @param {*} file
|
* @param {*} file
|
||||||
*/
|
*/
|
||||||
__fileSuccessListener(file) {
|
__fileSuccessListener(file) {
|
||||||
let _cache = this.state.fileList;
|
let _cache = this.state.fileList;
|
||||||
@ -381,7 +384,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传失败
|
* 文件上传失败
|
||||||
* @param {*} file
|
* @param {*} file
|
||||||
*/
|
*/
|
||||||
__fileErrorListener(file) {
|
__fileErrorListener(file) {
|
||||||
// 更新文件队列表单
|
// 更新文件队列表单
|
||||||
@ -401,7 +404,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 移除上传列表中的文件
|
* 移除上传列表中的文件
|
||||||
*/
|
*/
|
||||||
__removeFile(filename) {
|
__removeFile(filename) {
|
||||||
@ -444,7 +447,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
this.setState({ fileList: _cache, timer: 0 });
|
this.setState({ fileList: _cache, timer: 0 });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 暂停上传
|
* 暂停上传
|
||||||
*/
|
*/
|
||||||
__uploadPause(filename) {
|
__uploadPause(filename) {
|
||||||
@ -468,7 +471,7 @@ export default class ReactResumableJs extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 恢复上传
|
* 恢复上传
|
||||||
*/
|
*/
|
||||||
__uploadResum(filename) {
|
__uploadResum(filename) {
|
||||||
|
@ -273,7 +273,8 @@ const Index: React.FC<{}> = () => {
|
|||||||
if (index == 'single') {
|
if (index == 'single') {
|
||||||
currentDate = val
|
currentDate = val
|
||||||
setEndTime(new Date(val.endDate).getTime())
|
setEndTime(new Date(val.endDate).getTime())
|
||||||
filetype = '.file'
|
// filetype = '.file'
|
||||||
|
filetype = '.rar,.zip,.doc,.docx,.xls,.xlsx,.pdf'
|
||||||
object = JSON.stringify(val)
|
object = JSON.stringify(val)
|
||||||
path = '/' + val.createYear + '/' + val.tpId + '/' + val.sectionId + '/' + val.tdocId + '/uploadFile/' + val.tendererId
|
path = '/' + val.createYear + '/' + val.tpId + '/' + val.sectionId + '/' + val.tdocId + '/uploadFile/' + val.tendererId
|
||||||
} else {
|
} else {
|
||||||
@ -312,10 +313,10 @@ const Index: React.FC<{}> = () => {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 大文件上传完成后的组件返回
|
* 大文件上传完成后的组件返回
|
||||||
*
|
*
|
||||||
* @param file
|
* @param file
|
||||||
* @param resumable
|
* @param resumable
|
||||||
* @param callback
|
* @param callback
|
||||||
*/
|
*/
|
||||||
const onUploadSuccess = (file: any, cache: any, callback: any) => {
|
const onUploadSuccess = (file: any, cache: any, callback: any) => {
|
||||||
cache.push({
|
cache.push({
|
||||||
@ -346,34 +347,42 @@ const Index: React.FC<{}> = () => {
|
|||||||
clearInterval(task);
|
clearInterval(task);
|
||||||
} else {
|
} else {
|
||||||
if (switchBtn) {
|
if (switchBtn) {
|
||||||
getDecrypt(uuid).then((res) => {
|
setTimeout(() => {
|
||||||
if (res.code == 200) {
|
message.destroy()
|
||||||
if (res.data.consumptionState == '2' || res.data.consumptionState == '4') {
|
}, 3000)
|
||||||
if (res.data.stateMessage) {
|
test = 100;
|
||||||
message.error(res.data.stateMessage)
|
callback(cache.length - 1, "文件验证成功", test);
|
||||||
callback(cache.length - 1, res.data.stateMessage, 2);
|
switchBtn = false;
|
||||||
} else {
|
clearInterval(task);
|
||||||
message.error('验证错误,请刷新页面后重新上传!')
|
return;
|
||||||
callback(cache.length - 1, "文件验证失败", 2);
|
// getDecrypt(uuid).then((res) => {
|
||||||
}
|
// if (res.code == 200) {
|
||||||
switchBtn = false;
|
// if (res.data.consumptionState == '2' || res.data.consumptionState == '4') {
|
||||||
clearInterval(task);
|
// if (res.data.stateMessage) {
|
||||||
return;
|
// message.error(res.data.stateMessage)
|
||||||
} else if (res.data.consumptionState == '3') {
|
// callback(cache.length - 1, res.data.stateMessage, 2);
|
||||||
message.success(res.data.stateMessage)
|
// } else {
|
||||||
setTimeout(() => {
|
// message.error('验证错误,请刷新页面后重新上传!')
|
||||||
message.destroy()
|
// callback(cache.length - 1, "文件验证失败", 2);
|
||||||
}, 3000)
|
// }
|
||||||
test = 100;
|
// switchBtn = false;
|
||||||
callback(cache.length - 1, "文件验证成功", test);
|
// clearInterval(task);
|
||||||
switchBtn = false;
|
// return;
|
||||||
clearInterval(task);
|
// } else if (res.data.consumptionState == '3') {
|
||||||
return;
|
// message.success(res.data.stateMessage)
|
||||||
} else {
|
// setTimeout(() => {
|
||||||
callback(cache.length - 1, "文件验证中", test);
|
// message.destroy()
|
||||||
}
|
// }, 3000)
|
||||||
}
|
// test = 100;
|
||||||
})
|
// callback(cache.length - 1, "文件验证成功", test);
|
||||||
|
// switchBtn = false;
|
||||||
|
// clearInterval(task);
|
||||||
|
// return;
|
||||||
|
// } else {
|
||||||
|
// callback(cache.length - 1, "文件验证中", test);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 3000);
|
}, 3000);
|
||||||
@ -416,7 +425,10 @@ const Index: React.FC<{}> = () => {
|
|||||||
} else {
|
} else {
|
||||||
let strIndex = resumable.fileName.lastIndexOf(".")
|
let strIndex = resumable.fileName.lastIndexOf(".")
|
||||||
let fileSuffix = resumable.fileName.substring(strIndex + 1, resumable.fileName.length)
|
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 + '类型的文件')
|
message.error('请上传' + fileT + '类型的文件')
|
||||||
} else if (fileSuffix == 'file' && resumable.file.size > 200 * 1024 * 1024) {
|
} else if (fileSuffix == 'file' && resumable.file.size > 200 * 1024 * 1024) {
|
||||||
message.error('文件最大为200MB')
|
message.error('文件最大为200MB')
|
||||||
|
Reference in New Issue
Block a user