如何构建多部分 MIME 请求并使用 AngularJS 的 $http 方法 POST 它?

2024-02-25

如何构建多部分 MIME 请求并使用 AngularJS $http 方法将其 POST 到服务器 API?

我正在尝试将图像上传到服务器。图片的二进制数据应该是body使用 POST 方法和多部分 MIME 完成请求。其余查询参数可以作为查询字符串参数或作为多部分 MIME 中的其他部分发送。下面是请求的样子:

POST https://webservice.platform.com/Service/V1/Service.ashx?Pictures_ProfilePhoto_Add HTTP/1.1
PlatformSDK: xxxyyyzzz
Host: webservice.platform.com
Content-Type: multipart/form-data; boundary=---------------------------8d084109e6bc7e4
Content-Length: 1789
Expect: 100-continue


-----------------------------8d084109e6bc7e4
Content-Disposition: form-data; name="ApplicationName"

[email protected] /cdn-cgi/l/email-protection - Sample App
-----------------------------8d084109e6bc7e4
Content-Disposition: form-data; name="ApplicationPassword"

xxxxxnnnnnrrrqqqwwwssss
-----------------------------8d084109e6bc7e4
Content-Disposition: form-data; name="UserToken"

AABBCCDDEEFFGG
-----------------------------8d084109e6bc7e4
Content-Disposition: form-data; name="ApplicationTag"


-----------------------------8d084109e6bc7e4
Content-Disposition: form-data; name="bytesFullPhotoData"; filename="bytesFullPhotoData"
Content-Type: application/octet-stream

�����JFIF��x�x�����C�   

-----------------------------8d084109e6bc7e4--

以下代码将获得您要求的结果,但您应该使用指令方法,如以下链接中所述http://odetocode.com/blogs/scott/archive/2013/07/05/a-file-input-directive-for-angularjs.aspx http://odetocode.com/blogs/scott/archive/2013/07/05/a-file-input-directive-for-angularjs.aspx

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>How to construct a multipart MIME request and POST it using AngularJS' $http method?</title>
</head>
<body>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
    <div id="appRoot">
        <div ng-controller="TestCtrl">
            <p>
                <input type="text" placeholder="Name" ng-model="applicationName" />
                <br />
                <input type="password" placeholder="Password" ng-model="applicationPassword" />
                <br />
                <input type="text" placeholder="Token" ng-model="userToken" />
                <br />
                <input type="text" placeholder="Tag" ng-model="applicationTag" />
                <br />
                <input type="file" onchange="angular.element(this).scope().fileInputChanged(this);" id="fileInput" />
            </p>
            <button type="button" ng-click="uploadDocuments()">Upload</button>
        </div>
    </div>

    <script type='text/javascript'>
        'use strict';

        var app = angular.module('app', []);

        app.controller('TestCtrl', function ($scope, $http) {
            $scope.filesToUpload = null;

            $scope.fileInputChanged = function (element) {
                $scope.$apply(function (scope) {
                    scope.fileToUpload = element.files[0];
                });
            };

            $scope.uploadDocuments = function () {
                var formData = new FormData();
                formData.append("ApplicationName", $scope.applicationName);
                formData.append("ApplicationPassword", $scope.applicationPassword);
                formData.append("UserToken", $scope.userToken);
                formData.append("ApplicationTag", $scope.applicationTag);
                formData.append("BytesFullPhotoData", $scope.fileToUpload);


                $http({
                    method: 'POST',
                    url: '/api/Image/Upload', //!++ Set your own location
                    // if you set Content-Type, ; boundary= won't be in header so set undefined which will force the browser to fill
                    //x headers: { 'Content-Type': 'multipart/form-data' },
                    headers: {
                        'Content-Type': undefined
                    },
                    data: formData,
                    transformRequest: function (data) {
                        return data;
                    }
                }).success(uploadComplete).error(uploadFailed);
            };

            function uploadComplete(data, status, headers, config) {
                $scope.filesToUpload = null;
                var fileInput = $('#fileInput');
                fileInput.replaceWith(fileInput = fileInput.clone(true));
                console.log(data);
            }

            function uploadFailed(data, status, headers, config) {
                console.log('Upload failed!');
            }

        });

        angular.element(document).ready(function () {
            angular.bootstrap(document.getElementById('appRoot'), ['app']);
        });
    </script>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何构建多部分 MIME 请求并使用 AngularJS 的 $http 方法 POST 它? 的相关文章

  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • jQuery 插件不能很好地与 Angularjs 配合使用

    我用过jQuery 滑块在我的项目中 我使用 Angular 加载图像 我目前的观点是这样的 div div class slides container a href img width 919 height 326 alt a div
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • Select2 下拉列表动态添加、删除和刷新项目

    这让我发疯 为什么 Select2 不能在其页面上实现清晰的方法或示例如何在 Select2 上进行简单的 CRUD 操作 我有一个 select2 从 ajax 调用获取数据
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 使用异步调用时如何从 javascript 更新元刷新?

    我有一个系统 它使用元刷新来注销页面 该系统会在空闲用户后进行清理 不用担心 服务器也会导致会话超时 我开始通过 ajax 进行一些操作 不是真正的 xml 但这不是重点 我可以运行从异步请求返回的javascript 所以我想知道是否可以
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse

随机推荐

  • JApplet NoClassDefFoundError

    我正在 Eclipse 上编写 Japplet 它时不时地停止在 html 页面上工作 以下是错误 Exception in thread thread applet main MapGenerator class 1 java lang
  • 有没有一种简单的方法可以从 .NET 用户控件中删除“ct100”前缀?

    长话短说 几十个页面没有使用母版页 对于新模块 我创建了一个带有菜单控件的母版页 菜单控件已经存在 这样我就可以在我现在创建的大约六个页面上获得相同的外观 由于内容页使用母版页 因此菜单控件的名称更改为ct100 Menu1而不仅仅是Men
  • 使用 C# 编辑 DataGridview 并将其保存在数据库表中

    我使用 MYSQL Server 作为我的项目后端 我有一个 DataGridView 它填充了数据库中的数据 当我在 DataGridView 单元格中进行更改并单击保存按钮时 数据需要在 DataGridView 和数据库表中更改 这是
  • 新的CSS样式声明

    我正在尝试使用浏览器的内置类型CSSStyleDeclaration以编程方式传递和修改样式 这很方便 因为 cssText财产 然而 new CSSStyleDeclaration 抛出一个Illegal Constructor错误 所以
  • Gradle 以非零退出值 1 完成

    我刚刚在 libgdx 中生成了一个项目并导入到 eclipse 编译了一些依赖项 现在我得到了 Error Gradle Execution failed for task android compileDebugAidl com and
  • 如何选择自动完成下拉列表中的第一个元素

    如果没有元素 任何人都可以帮助我如何选择自动完成下拉列表的第一个元素 被选中 我尝试使用自动对焦 为键盘事件工作 如果我使用鼠标 第一个元素不会选择自动聚焦的元素 visit here https stackoverflow com a 9
  • 在 Swift 中使用 NSURL 读取文本文件

    我想读取并显示位于 URL 的文本文件的内容 我正在为 Yosemite 编写 Mac 应用程序 我需要使用 Swift 但我坚持这样做 这是我的代码 let messageURL NSURL string http localhost 8
  • 任务并行库 INotifyPropertyChanged 不抛出异常?

    我有一个 wpf 项目 我在绑定到文本框的属性上使用 INotifyPropertyChanged 我正在使用任务 TaskParallelLibrary 在不同的线程上更新此值 它已正确更新并且不会引发异常 我认为它会抛出异常 因为它是在
  • Angular 4 - Http 请求错误:您在需要流的地方提供了“未定义”

    在尝试执行 HTTP Post 请求时 我收到以下错误 auth service ts c694 156 请求新的时出错 密码 错误消息 您在流所在位置提供了 未定义 预期的 您可以提供 Observable Promise Array 或
  • 如何使用uiwebview显示一些网页?

    如何使用 uiwebview 显示某个 url 请求的网页 我不知道该怎么做 谁能告诉我该怎么做 有开源的吗 谢谢 NSString urlAddress http www google com NSURL url NSURL URLWit
  • 如何更加重视机器学习中的某些特征?

    如果使用像 scikit learn 这样的库 如何为 SVM 这样的分类器的输入中的某些特征分配更多权重 这是人们做还是不做的事 首先 你可能不应该这样做 机器学习的整个概念是使用统计分析分配最佳权重 你在这里干扰了整个概念 因此你需要非
  • 将列表传递给 Tcl 过程

    将列表传递给 Tcl 过程的规范方法是什么 如果我能得到它 以便列表自动扩展为可变数量的参数 我真的很喜欢它 所以像这样 set a b c myprocedure option1 option2 a and myprocedure opt
  • 在 IE 和 Chrome 中上传之前预览图像

    我正在尝试设计一个模块 在用户将图像上传到数据库之前 我想在其中向用户显示图像的预览 我找到了一个适用于 Firefox 但不适用于 IE 和 Chrome 的解决方案 有人可以帮助我吗 这是我的代码 function imageURL i
  • 这个空白隐藏在哪里?

    我有一个字符向量 它是一些 PDF 抓取的文件pdftotext 命令行工具 一切都 幸福地 排列得很好 然而 该向量充满了一种空白类型 无法使用正则表达式 gt test 1 Address Clinic Information Stor
  • whereis python 和 python --version 之间的矛盾

    在一个 Python 环境中 我输入whereis python 并得到以下信息 python usr bin python2 6 usr bin python2 6 config usr bin python usr lib python
  • 如何通知用户NPM包版本更新?

    我用 Node JS 编写了一个 CLI 工具并发布到NPM https www npmjs com package rapid react 每次在终端中运行时 我都需要通知用户可用的新版本及其类型 补丁 次要 主要 以便他 她可以相应地更
  • 如何计算时间复杂度为 O(n log n) 的 XOR(二元)卷积

    是按位异或运算 我认为Karatsuba算法可能可以解决该问题 但是当我尝试在Karatsuba算法中使用XOR代替 时 很难得到子问题 The 卷积定理 https en wikipedia org wiki Convolution th
  • 为什么在 Python 中处理已排序数组并不比处理未排序数组快?

    在这篇文章中为什么处理排序数组比处理随机数组更快 https stackoverflow com questions 11227809 why is processing a sorted array faster than an unso
  • flink kafka生产者在检查点恢复时以一次模式发送重复消息

    我正在写一个案例来测试 flink 两步提交 下面是概述 sink kafka曾经是kafka生产者 sink stepmysql接收器是否扩展two step commit sink comparemysql接收器是否扩展two step
  • 如何构建多部分 MIME 请求并使用 AngularJS 的 $http 方法 POST 它?

    如何构建多部分 MIME 请求并使用 AngularJS http 方法将其 POST 到服务器 API 我正在尝试将图像上传到服务器 图片的二进制数据应该是body使用 POST 方法和多部分 MIME 完成请求 其余查询参数可以作为查询