簡體   English   中英

如何使用 blazor 客戶端應用程序在服務器上創建新文件?

[英]How to create a new file on the server with blazor client-side application?

我正在嘗試通過單擊客戶端頁面上的按鈕在 web 服務器上創建一個新文件。

瀏覽器控制台僅顯示“WASM:已創建文件”。 但不顯示有關文件操作的任何錯誤或警告。

/wwwroot 路徑下也沒有任何新文件。

Blazor 服務器以管理員身份在 localhost (Win10) 上運行。

索引.razor內容;

@page "/"

<h1>Demo1</h1>

<button type="submit" @onclick="CreateFile.Run">Create A New File</button>

@code 
{
    public class CreateFile
    {

        public static void Run()
        {
            System.IO.File.WriteAllText("test.txt", "hello world");
            System.IO.File.WriteAllText(@"C:\VS Code Projects\Demo1\Client\wwwroot\samplefile.txt", "content 123");
            Console.WriteLine("File created.");

        }
    }
}

這是不可能的。 您的代碼在客戶端而不是服務器上運行,並且您無權訪問客戶端上的文件系統。

如果你想做這樣的事情,你需要使用 Blazor 服務器應用程序而不是 Blazor WebAssembly 應用程序。

此消息:“WASM:文件已創建。” 表示您使用的是 Blazor WebAssembly 應用程序,對嗎? 瀏覽器不應該允許您在客戶端上創建文件。 這只是您的代碼生成的消息。

理解這一點:當您點擊按鈕時,會發生正常的回發,因為按鈕的類型是“提交”。 返回調用頁面后,我猜是觸發了點擊事件(不確定但可能是這樣),執行run方法中的代碼,顯示消息“WASM:文件已創建”。

了解這一點:您已經創建了一個托管的 Blazor WebAssembly 應用服務器。 這是一個單頁應用程序,它應該通過 Web Api 或 SignleR 與您的服務器通信。 你不能使用回傳,你需要了解 Blazor 的兩種執行模式是如何工作的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM