J'essaye d'implémenter ng-file-upload avec le mode de téléchargement Resumable pour diviser de gros fichiers en morceaux et les fusionner une fois téléchargés. J'ai implémenté ng-file-upload dans de nombreux projets mais c'est la première fois que je le fais pour télécharger de gros fichiers.Resumable Upload avec ng-file-upload + PHP (fusionner des pièces)
Mon problème est que je ne sais pas comment faire fonctionner les fichiers côté serveur en PHP. Je dois juste télécharger des morceaux avec le nom de diferents mais je ne peux pas les fusionner.
Quelqu'un pourrait-il publier un exemple de code côté serveur en PHP pour faire fonctionner cette fonctionnalité?
C'est ce que je l'ai fait jusqu'à ce point:
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)
Jusqu'à présent, je reçois beaucoup de morceaux de même fichier avec des noms diférents .