我需要一个非常简单的例子。我只想使用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);
});
我对上传位置存在概念问题。我在发布到我页面的网址中使用了“”,但我收到了405 Method not Allowed
。在我看来我正在尝试重新发布此页面。我正试图从文件中获取二进制数据;我不想将文件上传到服务器。有什么建议?感谢。
好的..进一步思考。我的网络应用程序需要一个入口点来接受上传请求。到目前为止,我的网络应用程序是一个纯粹的JavaScript SPA。我需要在应用程序中添加什么样的入口点?谢谢你的帮助。
答案 0 :(得分:0)
我已经采取了另一种方式,但我在这里发布的答案就是像我这样需要简单解决方案的那些可怜的人。我刚刚添加了一个具有此功能的Angular服务:
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(&#34;,&#34;))我需要在后端发布到我的数据库。