Мне нужен очень простой пример. Я просто хочу использовать ng-file-upload
чтобы получить тело файла в поле объекта, определенное как двоичный массив в моем контроллере представления. Мне не нужно загружать файл в файловую систему на сервере. Документ для ng-file-upload
довольно сложный. Заранее спасибо.
Вот что я имею до сих пор:
<form name="form" ng-submit="vm.save()">
<div class="widget-content user">
Business Logo: <input type="file"
ngf-select ng-model="vm.logoFile" accept="image/*" ngf-max-size="2MB"
required autofocus placeholder="Logo image file" />
</div>
<div class="app-command-bar">
<button type="submit" class="btn btn-success navbar-btn"
ng-disabled="isSaveDisabled()"
title="SignUp">
<i class="icon-save"></i> Sign Up
</button>
и в моем контролере отправить:
if (vm.logoFile != null) {
log("logoFile" + vm.logoFile);
log("logoFile type: " + vm.logoFile.type);
log("logoFile name: " + vm.logoFile.name);
vm.logoFile.upload = Upload.http({
url: "",
headers: {
'Content-Type': vm.logoFile.type
},
data: vm.logoFile,
});
log("Attempting upload");
// we are trying to post the page again; no can do
vm.logoFile.upload.then(function (response) {
vm.logoFile.result = response.data; //supposed to be the file binary at this point
log("File result: " + vm.logoFile.result);
});
У меня проблема с концепцией размещения. Я использую "" в URL-адресе, который отправляется на мою страницу, но я получаю 405 Method not Allowed
. Мне кажется, я пытаюсь перепечатать эту страницу. Я пытаюсь просто получить двоичные данные из файла; Я не хочу загружать файл на сервер. Какие-либо предложения? Благодарю.
нормально.. дальше подумал. Мне нужна точка входа в мое веб-приложение, чтобы принять запросы на загрузку. Мое веб-приложение до сих пор является чистым javascript SPA. Какую входную точку мне нужно добавить в приложение? Спасибо за любую помощь.
Я пошел другим путем, но я отправляю в качестве ответа здесь для тех бедных слэбов, как я, которые нуждаются в простом решении. Я просто добавил услугу "Угловая", которая имеет эту функцию:
function uploadfile(file) {
var defer = $q.defer();
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function (event) {
defer.resolve(event.target.result);
};
return defer.promise;
};
Когда байты файла возвращаются, я просто разбираю тип и чистую base64string в поля (используя.split(",")) Мне нужно было отправить в мою базу данных на бэкэнд.