javascript - 将图像上传到服务器 Angular JS

标签 javascript angularjs web

我正在使用 Angular 开发 Web 应用程序的前端,并且我是这项技术的新手。我不知道如何将图像传递到 Controller 并上传到服务器。

我有包含图像的 html:

<div class="col-lg-1">
    <label class="btn btn-default" style="margin-top: 35px">
        <i class="fa fa-picture-o" aria-hidden="true"></i>
        <input type="file" style="display: none;" accept="image/*" ng-model="image">   
    </label>
</div>

现在您可以看到图像具有 ng-model="image",但是在 Controller 中如果我执行 console.log($scope.image) 我会得到未定义。

我想将图像编码为二进制表示形式,将其与其他属性一起放入 JSON 中,然后上传到服务器。

我怎样才能做到这一点?

最佳答案

你可以做这样的事情

在你的html中

<input type="file" id="file" name="file"/>
<button ng-click="upload()">Upload</button>

在你的 Controller 中

$scope.upload = function() {
    var f = document.getElementById('file').files[0];
    var r = new FileReader();
    r.onloadend = function(e) {
        var data = e.target.result;
    }
    r.readAsBinaryString(f);
}

关于javascript - 将图像上传到服务器 Angular JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114221/

相关文章:

javascript - 使用 JavaScript 获取和设置 CSS 变量?

AngularJS (1.5) 依赖注入(inject)模型类( typescript )

angular - 我的拦截器上未定义构造函数变量(Angular 8)

html - 为什么有些浏览器使用错误的字体(显然是随机的)呈现这个 unicode 字符?

html - SVG 图像标签中的图像未显示在 Chrome 中,而是显示在本地?

javascript - 如何使用 jQuery 为 IE8 设置背景图像(使用过滤器属性)?

javascript - 回调排序函数按元音数量对数组进行排序

javascript - 是否可以在 Google map 上叠加邮政编码列表?

javascript - 通过 Javascript 动态创建输入标签时,将 ng-autocomplete 添加到输入标签

javascript - 如何动态设置 Angular Material md-datepicker 指令的 md-min-date/md-max-date?