簡體   English   中英

是否可以在C#ASP.NET Web應用程序中執行此操作?

[英]Is it possible to do this in a C# ASP.NET Web Application?

我想編寫一個Web應用程序,它有兩個按鈕,直接從瀏覽器中允許我打開兩個簡單的文本文件(使用文件打開對話框或類似的東西),然后繼續讀取這些文件的內容和將它們存儲在兩個字符串中。 這里的關鍵點是,用於從中讀取的確切文件在運行時是未知的,因此用戶可以選擇文件。

我的目標是能夠稍后比較這兩個字符串,但那部分我已經知道該怎么做了。 我的問題是這樣 - 甚至可以在Web應用程序內部執行此操作(即調用“文件打開”對話框以允許用戶選擇要讀取的文件),或者安全限制或某些其他與Web應用程序相關的約束會阻止它從完成?

如果可能的話,我會很感激一些示例代碼,用於描述如何打開文件以及如何將所選文件的內容讀入字符串。 Othwerwise,我想知道它是否不可能,我應該考慮做一個桌面應用程序或嘗試完全不同的方式。

謝謝!

這是可能的,但你最終必須將兩個文本文件上傳到服務器並將文件讀入服務器端的字符串。

您需要做的就是向頁面添加兩個單獨的FileUpload控件以及一個將文件發布到服務器的按鈕。

如果您不想刷新頁面,可以使用ASP.NET AJAX Toolkit中的AsyncFileUpload控件通過AJAX進行比較。

更新

讀取文件的內容應該相對容易(只要它們是純文本):

var reader = new StreamReader(fileUploadControl.PostedFile.InputStream);
var contents = reader.ReadToEnd();

一種方法是使用ASP.NET AJAX AsyncFileUpload控件。

http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx

要從服務器端代碼(C#代碼)訪問文件,您需要用戶上傳它們。 執行此操作的標准方法(並且出於安全原因,您應該依賴的唯一方法)是使用文件輸入元素。 在ASP.NET中,您可以使用FileUpload控件。

您實際上會向用戶提供其中兩個控件,他們可以使用這兩個控件上傳這兩個文件。 然后你就可以在服務器上閱讀它們的內容,保存它們(如文件,數據庫,只在Session中臨時使用等)並對數據執行邏輯。 然后構建您的輸出(比較部分,您已經說過)已顯示在頁面刷新上。

請注意諸如用戶嘗試上傳非文本文件,非常大的文件等時該怎么做的問題。

JS不可能單獨做到這一點。 您必須構建文件上載(並存儲會話信息)或使用Silverlight和Javascript-Bridge到您的Web應用程序。

以下是Silverlight中FileOpenDialog的示例: http//www.silverlightexamples.net/post/Open-File-Dialog-in-Silverlight.aspx

這是通過C#/ Webforms上傳文件的例子http://support.microsoft.com/kb/323246

暫無
暫無

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

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