我有一个Blazor应用程序,它将文件上传到web服务器上的上传文件夹中。我正在试图找出在浏览器中下载上传文件以供检索和查看的代码。现在的代码如下(从互联网上的代码示例下载部分(
public void FileDetailsToolbarClickHandler(Syncfusion.Blazor.Navigations.ClickEventArgs args)
{
string path = null;
string uploads = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "wwwroot\uploads");
path = uploads + "\" + SelectedFileName;
if (args.Item.Text == "Delete")
{
//Code for Deleting goes here
//UploadRef.Remove();
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
FileDetailsService.FileDetailsDelete(SelectedFileId); //NavigationManager.NavigateTo($"/ServiceRequestNotes/servicerequestnoteadd");
NavigationManager.NavigateTo($"/ServiceRequests/serviceRequestsaddedit2/{Id}", forceLoad: true);
}
else
{
// its a download
IFileProvider provider = new PhysicalFileProvider(uploads);
IFileInfo fileinfo = provider.GetFileInfo(path + SelectedFileName);
var readStream = fileinfo.CreateReadStream();
var mimeType = "application/pdf";
return File(readStream, mimeType, SelectedFileName);
}
}
在最后一条声明中,我得到了以下错误消息
不可调用的成员"File"不能像方法错误消息一样使用
我缺少什么,或者我需要更改或添加什么才能将readstream的输出呈现到浏览器?
blazor应用程序是一个blazor服务器应用程序,而不是WASM。它不使用API控制器。
有什么建议吗?
这是一个void方法。你什么都不能还。此外,如果您试图实例化File对象,则必须使用new
关键字。