2011-12-20 23 views
0

我有這樣的事情:閱讀的文本 - C#和JavaScript

<form action="" id="fileUpload"> 
    <input type="file" id="fileTest"/> 
    <input type="button" id="saveFile"/> </form> 

對於用戶上傳的文件。

我再有這樣的JS:

$('#saveFile').click(function() { 
    PageMethods.ReadFile($('#fileTest').val()); 
}); 

而且在我的C#代碼我這樣做:

[WebMethod] 
public static void ReadFile(string path) 
{ 
    try 
    { 
     // Create an instance of StreamReader to read from a file. 
     // The using statement also closes the StreamReader. 
     using (StreamReader sr = new StreamReader(path)) 
     { 
      String line; 
      // Read and display lines from the file until the end of 
      // the file is reached. 
      while ((line = sr.ReadLine()) != null) 
      { 
       Console.WriteLine(line); 
      } 
     } 
    } 
    catch (Exception e) 
    { 
     // Let the user know what went wrong. 
     Console.WriteLine("The file could not be read:"); 
     Console.WriteLine(e.Message); 
    } 
} 

但是,發送到WEBMETHOD路徑不是文件的正確路徑。

我只是試圖從文件中獲取數據,然後用它做一些事情。

這是要做到這一點嗎?如果是這樣,我怎麼才能得到這個工作?

或者是否有更好的方法來做到這一點。

謝謝。

+0

你得到了什麼樣的路徑..你是獲取Web服務器的路徑還是你期望的實際文件所在的絕對路徑?對於文件類型也不應該是像文本/「bla bla bla什麼其他選項,它期望在網絡上傳..? – MethodMan 2011-12-20 16:13:09

+0

我凝視這個路徑:'c:\ fakepath \ myFile.txt'。沒有理解第二個問題 – Ovi 2011-12-20 16:19:31

+0

你期待什麼路徑然後 – MethodMan 2011-12-20 16:22:38

回答

3

您正嘗試訪問服務器上的客戶端文件($('#fileTest'))。這是不可能的。

取而代之,您需要將上傳表單發佈到網絡服務器並在該端處理它。

+0

謝謝,你能寫出我需要的確切代碼嗎?這將是一個很大的幫助。 – Ovi 2011-12-20 16:20:34

+0

所有你需要做的就是將文件發送到服務器。使用JQuery做表單發佈。 – Achilles 2011-12-20 16:25:19

+0

閱讀這篇文章應該有所幫助:http://msdn.microsoft.com/en-us/library/aa479405.aspx。 – 2011-12-20 16:25:19

0

我不知道你爲什麼要發送本地文件路徑到web服務,然後嘗試讀取文件內容。這不可能。網絡服務器無法查看或訪問您的本地文件夾。你需要上傳文件,然後你可以使用web服務調用獲取成功上傳文件的數據。

+0

如何上傳文件??你能否爲我寫更多的細節?感謝您的回覆。 – Ovi 2011-12-20 16:24:08

0
<form action="MyPage/MyWebMethod.aspx" method="post" enctype="multipart/form-data" > 
    <input type="file" id="fileTest"/> 
    <input type="button" id="saveFile"/> 
</form> 

然後在服務器上,您可以從Request.Files訪問文件。或類似的東西。我不記得請求中的確切成員。還有ajax不直接與文件上傳。以ajax方式上傳文件有許多技巧,其中之一是使用iframe。

+0

謝謝。我正在使用asp.net,我如何獲取到服務器?服務器方法將如何顯示? – Ovi 2011-12-20 16:27:18

+0

谷歌是你的朋友在這裏。在頁面方法中,從當前上下文獲取當前請求,然後從請求的Files集合中訪問該文件。 – 2011-12-20 16:32:20