Angularjs $http post 文件和表单数据

2024-01-30

我在 python 中有以下请求

import requests, json, io

cookie = {}
payload = {"Name":"abc"}
url = "/test"
file = "out/test.json"

fi = {'file': ('file', open(file) )}
r = requests.post("http://192.168.1.1:8080" + url, data=payload, files=fi, cookies=cookie)
print(r.text)

它将文件和表单字段发送到后端。我怎样才能用 Angular $http 做同样的事情(发送文件+表单字段)?目前,我确实喜欢这样,但也不知道如何发送文件。

var payload = {"Name":"abc"};
$http.post('/test', payload)
    .success(function (res) {
    //success
});

当必须同时上传文件和发送用户令牌信息时,我遇到了类似的问题。transformRequest随着成型FormData helped:

        $http({
            method: 'POST',
            url: '/upload-file',
            headers: {
                'Content-Type': 'multipart/form-data'
            },
            data: {
                email: Utils.getUserInfo().email,
                token: Utils.getUserInfo().token,
                upload: $scope.file
            },
            transformRequest: function (data, headersGetter) {
                var formData = new FormData();
                angular.forEach(data, function (value, key) {
                    formData.append(key, value);
                });

                var headers = headersGetter();
                delete headers['Content-Type'];

                return formData;
            }
        })
        .success(function (data) {

        })
        .error(function (data, status) {

        });

用于获取文件$scope.file我使用自定义指令:

app.directive('file', function () {
    return {
        scope: {
            file: '='
        },
        link: function (scope, el, attrs) {
            el.bind('change', function (event) {
                var file = event.target.files[0];
                scope.file = file ? file : undefined;
                scope.$apply();
            });
        }
    };
});

Html:

<input type="file" file="file" required />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angularjs $http post 文件和表单数据 的相关文章

随机推荐

  • 按主机名端口重定向到 docker 容器

    我想设置从一台服务器为多个站点提供服务 1 http www example org gt node js www running on port 50000 2 http files example org gt node js file
  • 如何在Android应用程序中制作自定义日历?

    我必须为 android 2 1 2 3 制作一个内置日历控件的应用程序 我曾尝试搜索内置和外部库来实现此目的 但未能成功 因此现在我决定自己编写日历 我想通过GridView 我该怎么办呢 如果有可用的代码 请在此处生成 这确实非常有帮助
  • 对于最新的 Unicode 字符,我应该使用哪种字体?

    注意 它们并不新鲜 只是 不支持 不知何故 我正在尝试为我的网站上的元素制作简单的控件 类似于简单的 静音 或 不静音 控件 但是 我还没有找到任何能够处理较新的 Unicode 符号的字体 例如扬声器符号 x1F507 to x1F50A
  • 我的自定义分类 url 链接的页面未显示 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 基本上我有 newsletter php 页面 其中显示所有现有的自定义帖子 从这里 我有一个下拉类别列表 您可以按类别过滤自定义帖子
  • 函数后加分号

    为什么有些人在大括号后面加分号有什么具体原因吗 void foo 不是真的 那里的分号没有区别 这可能是一个习惯问题 如果您愿意 您可以在 C 11 中添加任意多个分号 void foo
  • Windows 10 中的 Django 通道安装失败

    这是环境 操作系统 Windows 10 姜戈 2 0rc Python 3 6 点 10 0 0 视觉工作室社区 2017 以及错误消息 running build ext building twisted test raiser ext
  • Android 打开 pdf 不起作用

    一段时间以来我一直在努力让它发挥作用 我在这里看到了有关如何从 Android 打开 pdf 的其他问题 普遍的共识是我下面的代码 我错过了什么吗 try Uri path Uri parse android resource com Te
  • 是否可以增加 CloudFlare 超时?

    是否可以增加 CloudFlare 超时 如果是 怎么办 我的代码需要一段时间才能执行 而且我不打算在未来几天对其进行 Ajax 化 不 CloudFlare 仅提供这种服务企业计划定制 https www cloudflare com e
  • 在Perl中,如何根据绝对位置的条件来计算成功匹配的出现次数

    仅使用onePerl替换或匹配正则表达式语句 如何修改以下代码 我需要修改的值 pattern在下面的代码中 代码将计算在字符串中找到成功匹配的次数 前提是成功匹配的绝对位置满足特定条件 pattern F1 string F1234F12
  • .(点) 访问静态方法

    下面是一个流行的代码 class A public static const string TYPE AEvent const string getType return TYPE 上面的代码可以这样使用 if aInstance getT
  • 使用 POST 方法将参数发送到 url,而不使用表单

    我想使用 POST 方法将参数发布到 URL 但无法使用表单 即使我确实使用了表单 它也必须在没有用户交互的情况下自动发布 这可能吗 我怎样才能做到这一点 Using jQuery post http docs jquery com Aja
  • 不再支持 UITextField -webView

    使用某些文本字段时 我得到以下调试输出 UITextField webView 被调用 新的文本架构不再支持此方法 有人可以解释为什么会出现这种情况吗 我目前正在 iOS 7 上运行 XCode 5 在 iOS 7 之前的以前的 iOS 版
  • VLC 流至 MP4 WEBM 和 Flash

    我正在尝试将视频从 IP 摄像机流式传输到我的 WordPress 网站 我希望我的流可以通过常见设备 Windows Mac Android 和 IOS 访问 目前我正在使用 VLC 进行流式传输 但我只能使用 flash 流 但我想做
  • 使用 LINQ 搜索关键字

    如果我有一个包含标题的文本字段 并且有一个关键字列表 我如何搜索标题并检查标题中的 n 个关键字 因此 如果我的标题是 烘焙鸡肉 培根和韭菜派 并且用户搜索 鸡肉培根萝卜 我想返回上述食谱 本质上我想说的是 如果标题包含 2 个或更多搜索词
  • Vuetify V-Data-Table 页脚添加按钮

    我想在 v data table 页脚中添加一个与此图像类似的按钮 问题是 如果表包含数据 我通常可以添加一个按钮 但是 如果没有数据 则该按钮不会呈现 这是代码
  • Grails 获取子域对象

    我有两个域类 一个是父域类 另一个是子域类 它们之间有一个 hasMany 关系 父类有很多子类 子类属于父类 这是编码示例 class Parent String name static hasMany childs Child stat
  • 以编程方式更新 MSI 属性

    我需要一个解决方案 希望它应该相当简单 更新 MSI 属性 我们有许多在 TFS 2012 中进行源代码控制的 WiX 项目 并且我们生成其相关的 MSI 以便通过 TeamCity 构建配置进行部署 这些配置通常会构建所需的 wixpro
  • Access SQL 中的逆透视

    大家好 我正在尝试在 MS Access 上的 SQL 中使用 unpivot 我在网上找到了以下代码 SELECT CustomerID Phone FROM SELECT CustomerID Phone1 Phone2 Phone3
  • Jenkins 使用变量 ${GIT_BRANCH} 作为 sonarqube 参数(不带“origin/”)进行构建

    大型团队 每个团队都有单独的 git 分支 并使用声纳作为代码质量检查器 scm 工具设置为选取与该名称对应的每个分支 feature branch 对于 Maven 构建来说 它工作得很好 我想设置 sonarqube 这样它就会为每个实
  • Angularjs $http post 文件和表单数据

    我在 python 中有以下请求 import requests json io cookie payload Name abc url test file out test json fi file file open file r re