javascript — загрузка как оригинальных, так и измененных изображений с помощью ng-file-upload

Я пытаюсь заставить свое приложение сохранить на сервере измененное изображение и исходный файл.

Это то, что я пробовал до сих пор:

HTML:

<a ng-model="originalPic"ngf-select="uploadphototest($file)"ngf-resize="{width: 1170, type: 'image/jpeg'}"ngf-resize-if="$width > 1000"ngf-model-options="{updateOn: 'change drop paste'}"ngf-fix-orientation="true">
Upload image
</a>

JS:

$scope.uploadphototest = function (file) {
$scope.fileext = file.name.substring(file.name.lastIndexOf('.'), file.name.length);
$scope.uniqueportrait = $scope.fairnameonly + "-" + moment().format('DD-MM-YYYY-HH-mm-ss') + $scope.fileext;

Upload.imageDimensions(file).then(function(dimensions){
if (dimensions.width < 1170){
$scope.sizeerror = true;

}else{

fileor = $scope.originalPic;

Upload.upload({
url: 'uploadtest.php',
data: {
file: file,
name: Upload.rename(file, $scope.uniqueportrait),
fileor: fileor,
}
}).then(function (resp) {
...
});
};
});
};

И мой PHP:

<?php
$filename = $_FILES['file']['name'];
$destination = '/home/clients/cc5399b00bc00f15dc81742a0369c7b8/discovery/register/uploadstest/' . $filename;
move_uploaded_file( $_FILES['file']['tmp_name'] , $destination );

$filenameor = "ORIGINAL".$_FILES['fileor']['name'];
$destinationor = '/home/clients/cc5399b00bc00f15dc81742a0369c7b8/discovery/register/uploadstest/' . $filenameor;
move_uploaded_file( $_FILES['fileor']['tmp_name'] , $destinationor );
?>

Пока идет, но загружается только измененный размер, кажется, что исходный не передается от модели к функции, так как модель возвращается неопределенной в консоли …

Что мне не хватает?

0

Решение

Вы могли бы использовать Upload.resize обслуживание библиотеки. Не использовать ngf-resize а такжеgf-resize-if в вашем HTML, но измените размер файла в вашем JS. Что-то вроде:

HTML:

<a ng-model="originalPic"ngf-select="uploadphototest($file)"ngf-model-options="{updateOn: 'change drop paste'}"ngf-fix-orientation="true">
Upload image
</a>

JS

$scope.uploadphototest = function (file) {
$scope.fileext = file.name.substring(file.name.lastIndexOf('.'), file.name.length);
$scope.uniqueportrait = $scope.fairnameonly + "-" + moment().format('DD-MM-YYYY-HH-mm-ss') + $scope.fileext;

Upload.imageDimensions(file).then(function(dimensions){
if (dimensions.width < 1170){
$scope.sizeerror = true;
} else if(dimensions.width > 1000){
var resizeOptions = {
width: 1170
};

Upload.resize(file, resizeOptions).then(function(resizedFile) {
uploadFile(file, resizedFile);
});
} else {
uploadFile(file, file);
}
});
};

function uploadFile(originalFile, resizedFile) {
Upload.upload({
url: 'uploadtest.php',
data: {
file: resizedFile,
fileor: Upload.rename(file, $scope.uniqueportrait), //This returns a file
}
}).then(function (resp) {
...
});
}

Вот скрипка чего-то похожего: JSFiddle

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]