【发布时间】:2017-08-26 18:10:49
【问题描述】:
我正在尝试使用可恢复上传模式实现ng-file-upload,以将大文件分成块并在上传后合并它们。我已经在许多项目中实现了 ng-file-upload,但这是我第一次这样做来上传这么大的文件。
我的问题是我不知道如何使它在 PHP 中的服务器端文件中工作。我只需要上传不同名称的块,但我无法合并它们。
任何人都可以在 PHP 中发布一个服务器端代码示例来实现此功能吗?
这是我到目前为止所做的:
AngularJS
$scope.uploadMediaFile = function (file) {
if(file) {
Upload.upload({
ignoreLoadingBar: true,
url: 'app/api/upload/mediaFile.php',
resumeChunkSize: '1MB',
file: file
}).then(function (response) {
if(response.data.success) {
$scope.post.mediaFile = response.data.filename;
$scope.post.duration = response.data.duration;
} else {
console.error(response.data.error);
}
}, null, function (evt) {
console.log(part);
file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
});
}
};
mediaFile.php
$filename = $_FILES['file']['name'];
$file_tmp = $_FILES['file']['tmp_name'];
$file_ext = pathinfo($filename, PATHINFO_EXTENSION);
$file_des = $_SERVER['DOCUMENT_ROOT'] . '/storage/content/temp/';
if(!file_exists($file_des)) mkdir($file_des);
// Puting a diferent name for each file part
$new_filename = uniqid() . "." . pathinfo($filename, PATHINFO_EXTENSION);
move_uploaded_file($file_tmp, $file_des . $new_filename)
到目前为止,我得到了许多具有不同名称的相同文件。
【问题讨论】:
标签: php file-upload ng-file-upload chunks