Blazor WebAssembly是在浏览器上运行的技术,理论上不能直接读写文件。但是可以通过调用浏览器提供的File API来实现在浏览器中读写文件。
下面是一个示例,演示如何在浏览器环境下将数据写入到本地文件中:
@page "/"
@inject IJSRuntime JsRuntime
@code {
async Task WriteToFile()
{
string fileContent = "Hello world!";
string fileName = "test.txt";
await JsRuntime.InvokeAsync
在上面的代码中,我们可以使用Blazor提供的IJSRuntime服务来调用JavaScript函数。我们使用了一个自定义的JavaScript函数saveAsFile,在该函数中,我们将base64编码的文件内容和文件名发送到服务器端,然后再将文件保存到本地。
下面是JavaScript的实现:
window.saveAsFile = function (fileName, byteBase64) {
//将base64编码的内容转换为二进制
var link = document.createElement('a');
link.download = fileName;
link.href = "data:application/octet-stream;base64," + byteBase64;
document.body.appendChild(link); // Required for FF
link.click();
document.body.removeChild(link);
}