Я пытаюсь сделать изображение видимым всякий раз, когда кто-то перетаскивает его в окно сбрасывания, используя angular js file upload Я также посмотрел at this post на SO, но не смог заставить его работать ,AngularJS Загрузка изображения изображения в режиме перетаскивания
Я пробовал различные вещи, такие как отображение blob, отображение файла, но я не могу показать изображение после его удаления в этой области.
HTML:
<div ng-file-drop ng-model="files" ng-file-change="placeImage()"
drag-over-class="dragover" ng-multiple="false" class="dropbox" allow-dir="true"
accept=".jpg,.png,.pdf">Drop photo here!</div>
AngularJS:
$scope.placeImage = function() {
var files = $scope.files;
if (files && files.length) {
for (var i = 0; i < files.length; i++) {
('.dropper').html(files[i]); //does not work: obvious desperate move
('.dropper').html(files[i].__proto__.__proto__); //Doesn't work (even tried 64base)
}
}
}
Как я могу отобразить изображение после того, как он упал в раздаточной?
ОБНОВЛЕНИЕ
Ниже также не работает:
$("<img />").attr("src", files[i]).appendTo(".dropper");
или
$("<img />").attr("src", files[i].__proto__.__proto__).appendTo(".dropper");
Следующая ошибка возникает тогда:
http://localhost:8080/project/[object%20Object] 404 (Not Found)
Обновление 2:
Фиксированный с помощью следующих действий:
$scope.placeImage = function() {
var ctx = document.getElementById('canvas').getContext('2d');
var url = URL.createObjectURL($scope.files[0]);
var img = new Image();
img.onload = function() {
ctx.drawImage(img, 20, 20);
}
img.src = url;
}
+1 хороший момент спасибо. К сожалению, я все еще получаю сообщение об ошибке, если посмотреть на консоль. (см. обновленное сообщение) – Moody
Я не знаком с директивой ng-file-drop, но похоже, что он обертывает данные файла в файл-объект и для доступа к нему перед загрузкой, вы должны использовать FileReader api , за ответ, который вы ссылаетесь на выше. –
Мне удалось это исправить (см. Обновление 2). Несмотря на то, что я точно не использую ваш вышеуказанный способ, я ценю ваш ответ и ссылку, и я думаю, что это даже лучше, чем мой способ, и посмотрим на него позже. – Moody