如果图像包含在正文中,$ http post silent无结果

时间:2015-06-04 19:22:39

标签: angularjs node.js

如果我将图像添加到帖子请求中,则无法在客户端或服务器端应答。

    var self = this;
    var path = "/admin/speakers";
    var segment = "";
    var body = token.body;
    var config = {
        withCredentials: true,
        headers: {
            'x-auth-token': localStorage.getItem("model.LoginProxy.authToken"),
            'Content-Type': undefined
        },
        transformRequest: angular.identity
    };

    this.$http.post(path + segment, body, config)
        .success(function(data, status, headers, config) {
            self.onResult({data: data, status: status, headers: headers, config: config});
        })
        .error(function(data, status, headers, config) {
            self.onFault({data: data, status: status, headers: headers, config: config});
        });

使用某些表单数据处理图片上传的部分代码。

formData.append("bio", this.$scope.data.bio);
formData.append("photo", document.getElementById("photo").files[0]);

在服务器端,我确实得到了这个输出。

{ fieldname: 'photo',
  originalname: '02.jpg',
  name: 'd8a96dffc1ae80515a94fdb159ab3b9e.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  path: '/var/folders/jg/hkmz0fdn64g8w1jgf60j2lcw0000gn/T/d8a96dffc1ae80515a94fdb159ab3b9e.jpg',
  extension: 'jpg',
  size: 10306,
  truncated: false,
  buffer: null }

找到实际问题但需要帮助解决这个问题。

html + angular

<input type="hidden" name="bucket" value="photos" ng-model="data.bucket" />

formData.append("bucket", this.$scope.data.bucket);

存储桶在服务器上以undefined结尾,它是表单上的隐藏字段,想知道我们如何设置这些值,我不想在$scope中硬编码存储桶名称而是从表单本身中选择值。它是如何在angular + html中完成的?

期望/问题

我希望value="photos" ng-model="data.bucket"绑定到$scope.data.bucket,但它最终在$ scope上未定义,有没有办法在$scope.data中没有硬编码文件夹上传名称?

0 个答案:

没有答案