我們在C#WinForms應用程序中使用CefSharp(v37.0.0 NuGet包)。我們正在尋找一種方式(以編程方式)觸發文件上傳操作。如果可以的話,該怎麼辦? 了一些額外的想法:使用CefSharp進行文件上傳
- 我們有一個頁面上的文件上傳對話框,在這裏,通常情況下,用戶會選擇一個文件。這工作正常,我們通過IDialogHandler攔截對話調用並提供文件。
- 現在我們要觸發相同的對話框並預先設置文件。當對話框從「ExecuteScriptAsync」調用成功打開時,我們無法預先選擇文件。可能是由於以下原因:how to create/initialize the file object using file path html5
- 我們接下來的想法是讓對話框正常打開並以編程方式發出點擊事件,以便瀏覽器打開文件對話框(然後我們將通過IDialogHandler捕獲並提供我們所需的文件) 。
- 嘗試這種方法,我們的觀察如下:
- 在用戶操作(例如瀏覽器內部的按鈕點擊)後,我們可以通過編程方式「點擊」文件輸入按鈕。
- 從通過ExecuteScriptAsync發起的調用做同樣的事情,對話框(或IDialogHandler中的調用)不會出現。
這絕對做一個明顯的方式 - 感謝指出了這一點耀西!我們現在用稍微不同的方式解決了它。我們讓用戶在html表單上點擊我們最終的「保存」按鈕。但在這種特殊情況下,我們打開「文件打開」對話框 - 這是因爲它起源於用戶操作 - 然後我們從C#中捕獲並正確設置文件。接下來,我們再次從同一個C#事件處理函數中調用save函數,它將最終運行保存/上傳邏輯。酷的東西JavaScript/.NET之間的這種緊密的交互。 – lichtalberich