Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
X
xxx_phase2_web
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏敏伟
xxx_phase2_web
Commits
4388240e
Commit
4388240e
authored
Nov 30, 2023
by
以墨为白
🎧
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
大文件上传前是否有文件的判断
parent
1dd914dd
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
55 additions
and
84 deletions
+55
-84
src/components/common/bigfileUpload.vue
src/components/common/bigfileUpload.vue
+55
-84
No files found.
src/components/common/bigfileUpload.vue
View file @
4388240e
...
...
@@ -35,13 +35,11 @@ export default {
data
()
{
return
{
fileList
:
[],
headers
:
{
'
x-requested-with
'
:
'
XMLHttpRequest
'
}
};
},
mounted
()
{
let
headers_target
=
{
'
x-requested-with
'
:
'
XMLHttpRequest
'
};
headers_target
[
ACCESS_TOKEN
]
=
sessionStorage
.
getItem
(
"
token
"
);
this
.
headers
[
ACCESS_TOKEN
]
=
sessionStorage
.
getItem
(
"
token
"
);
var
_self
=
this
;
//必须先注销原来的,否则服务会执行多次
WebUploader
.
Uploader
.
unRegister
(
"
uploadBigFile
"
);
...
...
@@ -69,62 +67,33 @@ export default {
.
then
((
val
)
=>
{
file
.
md5
=
val
;
file
.
uid
=
WebUploader
.
Base
.
guid
();
// 判断文件是否上传过,是否存在分片,断点续传
// fetch(`api/rest/file/bigFile/check?fileMd5=${val}`, {
// method: "POST",
// headers: new Headers(headers_target)
// }).then(res => {
// if (res.status == 200) {
// return res.json();
// } else {
// return Promise.reject(HTTP_STATUS);
// }
// })
// .then(res => {
// if (res.code == 9000 && res.data == 1) {
// if (_self.checkFileExist) {
// return _self.checkFileExist(val);
// } else {
// return Promise.resolve(true);
// }
// } else {
// Promise.reject({message: res.code == 9000 ? res.message : "文件已存在"});
// }
// }).then(res => {
// return Promise.resolve();
// }).catch(err => {
// deferred.reject(data.message);
// });
$
.
ajax
({
type
:
"
POST
"
,
url
:
"
api/rest/file/bigFile/check
"
,
async
:
false
,
headers
:
headers_target
,
data
:
{
fileMd5
:
val
,
},
success
:
function
(
data
)
{
if
(
data
.
code
==
9000
)
{
var
resultCode
=
data
.
data
;
Promise
.
resolve
()
.
then
(
res
=>
{
if
(
_self
.
checkFileExist
)
{
return
_self
.
checkFileExist
(
val
);
}
else
{
return
Promise
.
resolve
(
false
);
}
}).
then
(
res
=>
{
if
(
res
)
{
return
Promise
.
reject
({
message
:
"
文件已存在
"
});
}
else
{
return
_self
.
post
(
`api/rest/file/bigFile/check?fileMd5=
${
val
}
`
);
}
}).
then
(
res
=>
{
// 文件已经上传过,忽略上传过程,直接标识上传成功;
if
(
resultCode
===
-
1
)
{
if
(
res
===
-
1
)
{
uploader
.
skipFile
(
file
);
file
.
pass
=
true
;
_self
.
getProgressBar
(
file
,
1
);
}
else
{
//文件没有上传过,下标为0 文件上传中断过,返回当前已经上传到的下标
file
.
indexcode
=
resultCode
;
}
}
else
{
deferred
.
reject
(
data
.
message
);
//触发error事件
file
.
indexcode
=
res
;
}
},
error
:
function
(
XMLHttpRequest
,
textStatus
,
errorThrown
)
{
deferred
.
reject
(
textStatus
);
//触发error事件
},
});
//获取文件信息后进入下一步
deferred
.
resolve
();
}).
catch
(
err
=>
{
deferred
.
reject
(
err
.
message
);
//触发error事件
});
});
return
deferred
.
promise
();
},
...
...
@@ -155,22 +124,13 @@ export default {
Promise
.
resolve
(
file
.
pass
)
.
then
(
res
=>
{
if
(
res
)
{
return
Promise
.
resolve
({
code
:
9000
});
}
else
{
return
fetch
(
`api/rest/file/bigFile/merge?fileName=
${
file
.
name
}
&fileMd5=
${
file
.
md5
}
`
,
{
method
:
"
POST
"
,
headers
:
new
Headers
(
headers_target
)
}).
then
(
res
=>
{
if
(
res
.
status
==
200
)
{
return
res
.
json
();
return
Promise
.
resolve
();
}
else
{
return
Promise
.
reject
(
HTTP_STATUS
);
}
});
return
_self
.
post
(
`api/rest/file/bigFile/merge?fileName=
${
file
.
name
}
&fileMd5=
${
file
.
md5
}
`
);
}
})
.
then
(
res
=>
{
if
(
res
.
code
==
9000
&&
_self
.
addFileInfo
)
{
if
(
_self
.
addFileInfo
)
{
return
_self
.
addFileInfo
({
md5
:
file
.
md5
,
file
:
{
...
...
@@ -180,10 +140,8 @@ export default {
uuid
:
file
.
uid
+
"
.
"
+
file
.
ext
,
}
});
}
else
if
(
res
.
code
==
9000
)
{
return
Promise
.
resolve
();
}
else
{
return
Promise
.
re
ject
(
res
);
return
Promise
.
re
solve
(
res
);
}
}).
then
(
res
=>
{
deferred
.
resolve
();
...
...
@@ -226,7 +184,7 @@ export default {
data
.
md5
=
file
.
md5
||
""
;
data
.
uid
=
file
.
uid
;
//增加请求token
$
.
extend
(
headers
,
headers_target
);
$
.
extend
(
headers
,
_self
.
headers
);
};
// 当有文件被添加进队列的时候触发
uploader
.
on
(
"
fileQueued
"
,
function
(
file
)
{
...
...
@@ -249,16 +207,6 @@ export default {
uploader
.
on
(
"
uploadSuccess
"
,
(
file
,
response
)
=>
{
_self
.
fileList
.
filter
(
e
=>
e
.
id
==
file
.
id
)[
0
].
state
=
2
;
_self
.
fileList
.
filter
(
e
=>
e
.
id
==
file
.
id
)[
0
].
percentage
=
100
;
let
param
=
{
md5
:
file
.
md5
,
file
:
{
name
:
file
.
name
,
size
:
file
.
size
,
type
:
file
.
ext
,
uuid
:
file
.
uid
+
"
.
"
+
file
.
ext
,
}
};
_self
.
$emit
(
"
Success
"
,
param
);
console
.
log
(
"
uploadSuccess
"
);
});
/**
...
...
@@ -298,6 +246,29 @@ export default {
let
item
=
this
.
fileList
.
find
(
e
=>
e
.
id
==
file
.
id
);
//在分片合并之后在设置进度百分之百
item
&&
(
item
.
percentage
=
percentage
==
1
?
99.9
:
Math
.
floor
(
percentage
*
100
*
100
)
/
100
);
},
post
(
url
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
fetch
(
url
,
{
method
:
"
POST
"
,
headers
:
new
Headers
(
this
.
headers
)
}).
then
(
res
=>
{
if
(
res
.
status
==
200
)
{
return
res
.
text
();
}
else
{
console
.
log
(
res
.
statusText
);
reject
(
HTTP_STATUS
);
}
}).
then
(
res
=>
{
let
result
=
JSON
.
parse
(
res
);
if
(
result
.
code
==
9000
)
{
resolve
(
result
.
data
);
}
else
{
console
.
log
(
result
);
reject
(
result
);
}
}).
catch
(
err
=>
reject
(
err
));
})
}
},
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment