2011-08-24 55 views
1

我一直在尋找通過一些解決方案,上傳後讀取文件,我發現這一點:如何處理使用GWT進行文件上傳?

Read text file in google GWT?

擁有的

new RequestBuilder(Method.GET, "path/to/file.txt").sendRequest("", new RequestCallback() { 
    @Override 
    public void onResponseReceived(Request req, Response resp) { 
    String text = resp.getText(); 
    // do stuff with the text 
    } 

    @Override 
    public void onError(Request res, Throwable throwable) { 
    // handle errors 
    } 
}); 

這似乎是一個可行的解決方案的解決方案我案件,但我有點新有這個,任何人可以解釋我怎麼可以應用這個gwt?我已經把FileUpload放置在一個面板上了,點擊處理器來處理提交按鈕的點擊。

有人可以幫我解決這個問題嗎?

+0

上傳完成後,您想要對文件做什麼? – luketorjussen

+0

@luketorjussen感謝您的回覆。我需要閱讀文本文件的內容,並最好將整個內容存儲爲一個字符串,然後我可以操作它。 –

+0

那麼這裏的行「String text = resp.getText();」包含文件中的文本。你問這個代碼應該從哪裏調用? – luketorjussen

回答

1

您鏈接到的答案是用於從服務器讀取文件。他們只是從網絡服務器請求文件。這聽起來像你想從客戶端讀取文件(你正在使用FileUpload)。根據您的應用程序運行的堆棧以及您支持的客戶端,有不同的方法可以做到這一點。

GWT FileUpload只是表單上的輸入控件,允許用戶選擇文件。它不會執行實際文件讀取的任何部分。

一種常用的方法是將文件作爲HTML表單的一部分發送到服務器,然後將其反饋回客戶端以將其導入到您的Web應用程序中。 This site已經有點老了,但在向您提供這種方法的基礎知識方面很出色。有幾個使用GWT的例子:for example也鏈接到this。此選項具有最廣泛的客戶端支持,但網絡流量的成本更高。

如果您知道客戶端支持HTML5,也可以使用File API在JavaScript中讀取該文件。 Here是Mozilla的一些文檔。不幸的是,它沒有真正集成的GWT支持,所以你必須編寫一些JavaScript。該選項不會被所有客戶端支持,但也不會產生任何網絡流量。

+0

感謝您的回覆。我嘗試過,使用您提供的第一個示例,它恰好是同一個[FileUpload](http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client /ui/FileUpload.html),但似乎我仍然無法正常工作。我真的不知道如何檢索這個 –

+0

文件,我需要做的是在用戶提交文件後,我會立即讀取文件並檢查這些文件並修改網頁。 –

+0

你在服務器端使用什麼?服務器必須解析多部分表單,提取文件,然後您的Web應用程序必須將其讀回。 –

相關問題