首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSwag向.net核心后端生成角客户端post文件

NSwag向.net核心后端生成角客户端post文件
EN

Stack Overflow用户
提问于 2022-11-26 18:42:16
回答 1查看 16关注 0票数 0

我想做一件非常简单的事情:向我的控制器发送一个文件。

我有一个.net核心6.0后端。我的前端API客户机是由NSwag生成的。

我的控制器如下所示(模型包含一个名为“IFormFile”的文件。)

代码语言:javascript
复制
 [HttpPost("single-file"), DisableRequestSizeLimit]
    public async Task<ActionResult<int>> Create([FromForm] CreateUploadedDocumentModel model)
    {...

这在生成的swagger UI中工作。

然而,生成的棱角客户端不是。

文件来自html输入。

代码语言:javascript
复制
<input  (change)="selectFiles($event)" class="form-control" type="file" id="formFileMultiple">

文件类型为FileList[];

在提交时,我循环遍历文件并调用“上载”:

代码语言:javascript
复制
    this.uploadClient.create(1, file, file.name).subscribe(
      result => {
        console.log(result);

      },
      err => {
        this.message = 'Could not upload the file:' + file.name;
      });
  }

下面是自动生成的角web api客户端调用:

代码语言:javascript
复制
  create(consultantId: number | undefined, file: FileParameter | null | undefined, fileName: string | null | undefined): Observable<number> {
        let url_ = this.baseUrl + "/api/UploadedDocuments/single-file";
        url_ = url_.replace(/[?&]$/, "");

        const content_ = new FormData();
        if (consultantId === null || consultantId === undefined)
            throw new Error("The parameter 'consultantId' cannot be null.");
        else
            content_.append("ConsultantId", consultantId.toString());
        if (file !== null && file !== undefined)
            content_.append("File", file.data, file.fileName ? file.fileName : "File");
here -->    if (fileName !== null && fileName !== undefined)
            content_.append("FileName", fileName.toString());

因此,当我试图发布时,我会得到一个错误::FormData.append:参数2不是一个对象。因为file.data是在自动生成的客户端中未定义的。

我尝试了许多不同的东西:)我可以创建一个简单的表单数据发布,但是我需要使用Nswag自动生成的客户机“开箱即用”。

任何帮助或指示都将不胜感激,谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2022-11-27 08:50:56

如果有人遇到这个问题..。

我只需从表单输入中包装文件,如下所示:

代码语言:javascript
复制
let fileParameter: FileParameter = { data: file, fileName: file.name };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74584742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档