Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未使用PhysicalFile或Razorpages中的文件加载图像_C#_Asp.net Core_Razor Pages - Fatal编程技术网

C# 未使用PhysicalFile或Razorpages中的文件加载图像

C# 未使用PhysicalFile或Razorpages中的文件加载图像,c#,asp.net-core,razor-pages,C#,Asp.net Core,Razor Pages,使用asp.net core 3.1和Razorpages 我正在使用PhysicalFileProvider将文件存储在根目录之外,但无法让它们加载到图像标记中,尽管路径有效 理想情况下,我希望将文件返回到图像标签,图像标签占文件的90%,而对于那些没有直接返回到浏览器然后下载的文件 我可以访问物理文件路径,但由于安全原因,Chrome不允许查看。将路径剪切并粘贴到浏览器中会成功返回文件。因此,路径正在运行,并且可以通过剪切和粘贴下载文件 完整路径为file:///C:/Dropbox/Enf

使用asp.net core 3.1和Razorpages

我正在使用PhysicalFileProvider将文件存储在根目录之外,但无法让它们加载到图像标记中,尽管路径有效

理想情况下,我希望将文件返回到图像标签,图像标签占文件的90%,而对于那些没有直接返回到浏览器然后下载的文件

我可以访问物理文件路径,但由于安全原因,Chrome不允许查看。将路径剪切并粘贴到浏览器中会成功返回文件。因此,路径正在运行,并且可以通过剪切和粘贴下载文件

完整路径为file:///C:/Dropbox/Enform/Files/699657ed-315c-e1d8-d4d5-39fb5550d14a/mars programming.jpg

因此,我尝试使用PhysicalFile通过DTO将其传递给图像标记,但它返回404,其中包含完整路径、mimeType和文件名

Storage.ImagePFR = PhysicalFile(path, ext, filename);

我认为它可能需要一个相对路径而不是绝对路径,所以从这里使用GetRelativePath

但它也返回了404

在前端,我将其传递给

<img src="@Model.Storage.ImagePFR" class="card-img-top" alt="ImagePFR">
我试着用字符串和图像传递,但没有区别

我还想用一个文件

 var bytes = await System.IO.File.ReadAllBytesAsync(path);
 Storage.ImagePFR = File(bytes, ext, Path.GetFileName(path));

并将其传递给属性为的DTO

public PhysicalFileResult ImagePFR { get; set; }
public FileContentResult ImagePFR { get; set; }
<img src="@Model.Storage.ImagePFR" class="card-img-top" alt="ImagePFR">

您需要在
src
标记中包含
FileName
,如下所示

<img src="@Model.Storage.ImagePFR.FileName" class="card-img-top" alt="ImagePFR">


当您使用
时,
src
需要
字符串
&
@Model.Storage.ImagePFR
对象
。因此它将返回
@Model.Storage.ImagePFR.ToString()
,它将返回类的名称,名称空间为
Microsoft.AspNetCore.Mvc.PhysicalFileResult
。因此,当您检查呈现的html时,它将显示为

,感谢您提供的信息性回复。但是,添加文件名仅用于在img标记中将文件名显示为
public FileContentResult ImagePFR { get; set; }
<img src="@Model.Storage.ImagePFR" class="card-img-top" alt="ImagePFR">
 <img src="@Model.Storage.ImagePFR.FileName" class="card-img-top" alt="@Model.Storage.ImagePFR.FileName">
<img src="c:\Dropbox\Enform\Files\699657ed-315c-e1d8-d4d5-39fb5550d14a\mars-programming.jpg" class="card-img-top" >
string imgType = "data:" + GetMimeTypes(Storage) + ";base64,";
Storage.Imagetest2 = string.Format(imgType + Convert.ToBase64String(System.IO.File.ReadAllBytes(path)));
<img src="@Model.Storage.ImagePFR.FileName" class="card-img-top" alt="ImagePFR">