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

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

無法訪問后端項目中上傳的圖像

無法訪問后端項目中上傳的圖像

C#
大話西游666 2023-09-24 11:13:49
我正在嘗試訪問存儲在前端應用程序的 /uploads/ 文件夾中的圖像。我得到http://localhost:4200/uploads/a.jpg和http://localhost:4200/StaticFiles/a.jpg的 404 。我需要圖像的路徑才能將其顯示在圖庫中。我嘗試使用圖像的完整路徑(“D:/blabla/uploads/a.jpg”),但似乎受到限制。然后我使用下面的代碼從后端提供到我的上傳文件夾的路徑,但我仍然得到 404。我的后端和前端項目位于不同的文件夾中,我的前端將請求發送到后端的端口。后端運行最新的.net core,前端是Angular 8。這就是我提供靜態文件的方式:var aux = Path.Combine(Directory.GetCurrentDirectory(), "uploads");app.UseStaticFiles(new StaticFileOptions    {        FileProvider = new PhysicalFileProvider(aux),        RequestPath = "/StaticFiles"    });這就是我上傳圖像的方式。該代碼可以工作并上傳項目內 /uploads 文件夾中的圖像。var uploadFilesPath = Path.Combine(_host.ContentRootPath, "uploads");if (!Directory.Exists(uploadFilesPath))    Directory.CreateDirectory(uploadFilesPath);    foreach (var file in fileData)        {            var fileName = Guid.NewGuid() + Path.GetExtension(file.FileName);            var filePath = Path.Combine(uploadFilesPath, fileName);            using (var stream = new FileStream(filePath, FileMode.Create))                {                    file.CopyTo(stream);                }            var propToAddImageTo = _propManager.GetById(id);            _propManager.AddImage(propToAddImageTo, filePath);        }當我嘗試設置一個簡單的<img src="localhost:4200/uploads/a.jpg">或時<img src="localhost:4200/StaticFiles/a.jpg">,Mozilla 開發人員工具的網絡選項卡上的請求顯示 404。
查看完整描述

2 回答

?
12345678_0001

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

的默認值_host.ContentRootPath等于Directory.GetCurrentDirectory(),但前提是您使用WebHost.CreateDefaultBuilder。從文檔中:

CreateDefaultBuilder執行以下任務:

  • ...

  • 將內容根設置為 . 返回的路徑Directory.GetCurrentDirectory。

您的代碼假設始終ContentRootPath與相同,但這并不總是正確的。如果您不使用,或者您的代碼分為多個項目(正如您在評論中提到的),它們將不會指向同一個地方。Directory.GetCurrentDirectoryCreateDefaultBuilder


查看完整回答
反對 回復 2023-09-24
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

下面的代碼對我有用:


app.UseCors("CorsPolicy");

app.UseStaticFiles();

app.UseStaticFiles(new StaticFileOptions()

{

    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"uploads")),

    RequestPath = new PathString("/StaticFiles")

});

app.UseMvc();

它需要該uploads文件夾應該存在于根目錄中,否則會拋出錯誤。假設結構是 ApplicationName/uploads/a.jpg ,您可以使用如下:


<img src="http://localhost:xxxx/StaticFiles/a.jpg">


要在服務器端保存圖像,您可以通過以下方式找到路徑:


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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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