使用ng-file-upload上传时,请求.Files对象在烧瓶服务器上为空



我正在使用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"

我遵循此文档的服务器端。我认为问题是来自客户端,可能是因为烧瓶服务器投掷400,我正在发送一些不良的请求。因此,我尝试通过发送" Multipart/form-data"标头来尝试,但没有运气,也没有明确发送表单数据。我还寻找了一些解决方案,例如Sol-1。我还没有找到可以在NG-File-Upload文档中解决我的问题的任何东西。

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

我可能缺少很小的部分,有人可以指出我。

默认值 for 标题 它已经在post request request 中了。添加"Content-Type":"multipart/form-data"只是覆盖了这一点。毫无疑问。

最新更新