mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 07:27:04 +00:00
repair upload bug
This commit is contained in:
@@ -128,43 +128,30 @@ class FileUploader extends React.Component {
|
|||||||
this.resumable.on('dragstart', this.onDragStart.bind(this));
|
this.resumable.on('dragstart', this.onDragStart.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
onChunkingComplete = (file) => {
|
onChunkingComplete = (resumableFile) => {
|
||||||
if (file.relativePath !== file.fileName) {
|
//get parent_dir relative_path
|
||||||
return; // is upload a folder;
|
|
||||||
}
|
|
||||||
if (enableResumableFileUpload) {
|
|
||||||
let repoID = this.props.repoID;
|
|
||||||
seafileAPI.getFileUploadedBytes(repoID, this.props.path, file.fileName).then(res => {
|
|
||||||
let uploadedBytes = res.data.uploadedBytes;
|
|
||||||
let offset = Math.floor(uploadedBytes / (1024 * 1024));
|
|
||||||
file.markChunksCompleted(offset);
|
|
||||||
this.resumable.upload();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onFileAdded = (resumableFile, files) => {
|
|
||||||
//get parent_dir、relative_path;
|
|
||||||
let path = this.props.path === '/' ? '/' : this.props.path + '/';
|
let path = this.props.path === '/' ? '/' : this.props.path + '/';
|
||||||
let fileName = resumableFile.fileName;
|
let fileName = resumableFile.fileName;
|
||||||
let relativePath = resumableFile.relativePath;
|
let relativePath = resumableFile.relativePath;
|
||||||
let isFile = fileName === relativePath;
|
let isFile = fileName === relativePath;
|
||||||
|
|
||||||
//update formdata;
|
//update formdata
|
||||||
resumableFile.formData = {};
|
resumableFile.formData = {};
|
||||||
if (isFile) {
|
if (isFile) { // upload file
|
||||||
resumableFile.formData = {
|
resumableFile.formData = {
|
||||||
parent_dir: path,
|
parent_dir: path,
|
||||||
};
|
};
|
||||||
} else {
|
} else { // upload folder
|
||||||
let relative_path = relativePath.slice(0, relativePath.lastIndexOf('/') + 1);
|
let relative_path = relativePath.slice(0, relativePath.lastIndexOf('/') + 1);
|
||||||
resumableFile.formData = {
|
resumableFile.formData = {
|
||||||
parent_dir: path,
|
parent_dir: path,
|
||||||
relative_path: relative_path
|
relative_path: relative_path
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//check repetition
|
onFileAdded = (resumableFile, files) => {
|
||||||
|
let isFile = resumableFile.fileName === resumableFile.relativePath;
|
||||||
// uploading is file and only upload one file
|
// uploading is file and only upload one file
|
||||||
if (isFile && files.length === 1) {
|
if (isFile && files.length === 1) {
|
||||||
let hasRepetition = false;
|
let hasRepetition = false;
|
||||||
@@ -182,18 +169,28 @@ class FileUploader extends React.Component {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.setUploadFileList(this.resumable.files);
|
this.setUploadFileList(this.resumable.files);
|
||||||
if (!enableResumableFileUpload) {
|
this.resumableUpload(resumableFile);
|
||||||
this.resumable.upload();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.setUploadFileList(this.resumable.files);
|
this.setUploadFileList(this.resumable.files);
|
||||||
if (!enableResumableFileUpload) {
|
if (isFile) {
|
||||||
|
this.resumableUpload(resumableFile);
|
||||||
|
} else {
|
||||||
this.resumable.upload();
|
this.resumable.upload();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resumableUpload = (resumableFile) => {
|
||||||
|
let { repoID, path } = this.props;
|
||||||
|
seafileAPI.getFileUploadedBytes(repoID, path, resumableFile.fileName).then(res => {
|
||||||
|
let uploadedBytes = res.data.uploadedBytes;
|
||||||
|
let offset = Math.floor(uploadedBytes / (1024 * 1024));
|
||||||
|
resumableFile.markChunksCompleted(offset);
|
||||||
|
this.resumable.upload();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
filesAddedComplete = (resumable, files) => {
|
filesAddedComplete = (resumable, files) => {
|
||||||
// single file uploading can check repetition, because custom dialog conn't prevent program execution;
|
// single file uploading can check repetition, because custom dialog conn't prevent program execution;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user