1. 程式人生 > 其它 >.net core 將圖片存入environment.WebRootPath 後臺服務時 對於圖片的訪問

.net core 將圖片存入environment.WebRootPath 後臺服務時 對於圖片的訪問

將圖片存入environment.WebRootPath 後臺服務時對於圖片的訪問

直接後臺訪問子資源路徑,雖然這樣訪問對於前端會方便很多 但是實際上這樣訪問會暴露相應的api介面,對於安全的上的考慮,採用base64的字串進行顯示,字串前需要加入data的型別,便於識別,此操作也可以在前端進行展示完成,但是作為主要開發後端的人來說,還是後臺進行轉化方便一些,還有就是有的瀏覽器對子資源的訪問限制,,,令人頭痛

一個小例子

environment.WebRootPath :圖片存的路徑

後臺讀取方法如下:

var content = Path.Split("\\");


var datatype = "data:image/jpeg;base64,{0}";
string path = System.IO.Path.Combine(environment.WebRootPath, content[0], content[1]);
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
var bytes = new byte[stream.Length];

stream.Read(bytes, 0, bytes.Length);
stream.Close();
stream.Dispose();
var s = Convert.ToBase64String(bytes);
return string.Format(datatype, s);

測試例子(不是規範的測試寫法):

[TestMethod]
public void IsExistsImgPath()


{
ImgPathViewModel imgPathView = new ImgPathViewModel(environment.Object);
imgPathView.ImgName = "20210702163812rbac0.png";
imgPathView.Path = "imagesBPM\\20210702163812rbac0.png";
Assert.IsNotNull(imgPathView.PathString);
}

本文來自部落格園,作者:WD。。。,轉載請註明原文連結:https://www.cnblogs.com/wd4j/p/14998558.html