【问题标题】:Request.files object is empty on flask server when uploaded using ng-file-upload使用 ng-file-upload 上传时,Flask 服务器上的 Request.files 对象为空
【发布时间】:2018-05-28 13:57:59
【问题描述】:

我正在使用 ng-file-upload 上传 xls 或 xlsx 文件,下面是我的 html 代码

<div ngf-drop ngf-select ngf-change="checkFile($invalidFiles);" ngf-model-invalid="invalidFiles" ng-model="file" class="center" ngf-drag-over-class="'dragover'" ngf-pattern="'.xls,.xlsx'">

<button class="some-class" ng-click="upload(file)"></button>

角度控制器:

$scope.upload = function (file) {
    if (file) {
            var upload = Upload.upload({
                url: API.url('upload'),
                data: {
                  file: file
                },
                headers:{ // tried passing different headers as well 
                    "Content-Type":"multipart/form-data"
                 }

            });
            upload.then(function (resp) {
                //Some Operation
            }, null, function (evt) {
                //Some Operation
            });
    }
};

烧瓶服务器:

    def upload(self):
        params = self.get_params(request)
        file = request.files['file'] ###This object is empty.
        result = self._upload_file(file)
        return "Dummy"

我关注了服务器端的 this 文档。 我认为问题出在客户端,可能是我发送了一些错误的请求,因为烧瓶服务器正在抛出 400。所以我尝试通过发送“multipart/form-data”标头但没有运气,也通过显式发送表单数据。 我还寻找了一些解决方案,例如sol-1。 我在ng-file-upload 文档中也没有找到任何可以解决我的问题的东西。

如果需要,我也可以发送请求标头。

我可能遗漏了很小的一部分,有人可以指出我吗。

【问题讨论】:

    标签: python angularjs file-upload flask ng-file-upload


    【解决方案1】:

    标头默认值已在发布请求中。添加"Content-Type":"multipart/form-data" 只是覆盖它。不用那个试试看。

    【讨论】:

      猜你喜欢
      • 2017-02-13
      • 1970-01-01
      • 2014-11-16
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多