亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將圖像從 Angular 8 上傳到 ASP.Netcore Web API 時遇到問題

將圖像從 Angular 8 上傳到 ASP.Netcore Web API 時遇到問題

C#
繁星淼淼 2023-09-24 10:25:40
我花了一整天的時間試圖讓它發揮作用,我查看了以下內容:https://www.talkingdotnet.com/upload-file-angular-5-asp-net-core-2-1-web-api/https://code-maze.com/upload-files-dot-net-core-angular/還有很多我數不過來的。我想要的只是發送一份表格和一張圖像。得到的錯誤是:缺少內容類型邊界內容類型不正確函數求值需要所有線程運行有角的register(user: UserViewModel, logo: File) {    // We use formData because we can't send file as an object    const formData = new FormData();    formData.append("user", JSON.stringify(user));    formData.append("logo", logo);    console.log(formData);    return this.http.post<UserRegisterViewModel>(`${UserAPI.API_User}/${"register"}`, formData).pipe(map(user => {      return user;    }));  }我的 C# 代碼看起來像這樣[HttpPost, DisableRequestSizeLimit]        [AllowAnonymous]        [Route("register")]        //[Consumes("application/json", "multipart/form-data")]        public async Task<IActionResult> RegisterAsync()        {            IFormFile logo = null;            try            {                // Get the logo                logo = Request.Form.Files[0];                // Get the user json string                var userJson = Request.Form["user"];
查看完整描述

2 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

如果您想從 獲取文件Request.Form。您可以按照以下代碼示例操作:


客戶端 :


const formData = new FormData();

formData.append('file', fileToUpload, fileToUpload.name);


this.http.post('https://localhost:5001/api/upload', formData, {reportProgress: true, observe: 'events'})

.subscribe(event => {

    if (event.type === HttpEventType.UploadProgress)

    this.progress = Math.round(100 * event.loaded / event.total);

    else if (event.type === HttpEventType.Response) {

    this.message = 'Upload success.';

    this.onUploadFinished.emit(event.body);

    }

});

服務器端 :


[HttpPost, DisableRequestSizeLimit]

public IActionResult Upload()

{

    try

    {

        var file = Request.Form.Files[0];

        var folderName = Path.Combine("StaticFiles", "Images");

        var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);


       .....

    }

    catch (Exception ex)

    {

       ....

    }

}

或者您可以使用 FromForm 獲取文件:


客戶端 :


let fileToUpload = <File>files[0];

const formData = new FormData();

formData.append('file', fileToUpload, fileToUpload.name);


this.http.post('YourURL', formData, {headers: {

  'Accept': 'application/json',     

  'Content-Disposition' : 'multipart/form-data'

},reportProgress: true, observe: 'events'})

  .subscribe(event => {

    ....

  });

那么服務器端將是:


[HttpPost, DisableRequestSizeLimit]

public IActionResult Upload([FromForm(Name = "file")] IFormFile file)

{



}


查看完整回答
反對 回復 2023-09-24
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

這解決了它,我有一個斷點

logo?=?Request.Form.Files[0];

由于某種原因,VS2017 和 2019 中存在一個錯誤。

查看完整回答
反對 回復 2023-09-24
  • 2 回答
  • 0 關注
  • 153 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號