GXTファイルアップロード
GWTのファイルのアップロードについてネット上でカプセル化の比較的に良い例がありますみんなは検索することができます:gwtextux.
gwtextuxはGWT-EXTに基づいて開発された.本稿では,GXTコンポーネント向けに開発されたファイルアップロードの例について述べる.
GXTファイルのアップロードは主に5つのステップに分けられます.
最初のステップでは、Formのコミットプロパティを設定します.
ステップ2:アップロードコンポーネントの追加
ステップ3:送信ボタン
ステップ4:アップロード・ストリームのサーブレットをバックグラウンドで受け入れる
ステップ5:web.xml
読み込みの進捗状況を実現するには、バックグラウンドでファイルの長さを取得する時間の輪訓を行います.
合計長さは、ファイル書き込みストリームの書き込み回数に基づいて書き込みの割合を判断します.このデータをフロントに表示します.
ファイルアップロードにはサードパーティjarパッケージが必要です
commons-fileupload-1.2.1.jar
gwtextuxはGWT-EXTに基づいて開発された.本稿では,GXTコンポーネント向けに開発されたファイルアップロードの例について述べる.
GXTファイルのアップロードは主に5つのステップに分けられます.
最初のステップでは、Formのコミットプロパティを設定します.
// form
FormPanel formPanel = new FormPanel ();
// form MULTIPART
formPanel.setEncoding (FormPanel.Encoding.MULTIPART);
// POST
formPanel.setMethod (FormPanel.Method.POST);
//
formPanel.setAction ("fileupload.do");
ステップ2:アップロードコンポーネントの追加
//
FileUploadField fileUploadField = new FileUploadField ();
fileUploadField.setFieldLabel (" ");
fileUploadField.setName ("file");
ステップ3:送信ボタン
Button button = new Button (" ");
button.addListener (Events.OnClick, new Listener <BaseEvent> ()
{
@Override
public void handleEvent (BaseEvent be)
{
formPanel.submit ();
}
ステップ4:アップロード・ストリームのサーブレットをバックグラウンドで受け入れる
public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//
ServletFileUpload upload = new ServletFileUpload ();
FileItemIterator iter;
HttpSession session = request.getSession ();
//
String fileSizeString = request.getHeader ("Content-Length");
//
String sourceidString = null;
try
{
// request
iter = upload.getItemIterator (request);
while (iter.hasNext ())
{
FileItemStream item = iter.next ();
//
if (TermStrings.SOURCE_FILED.equals (item.getFieldName ()))
{
InputStream stream = item.openStream ();
sourceidString = Streams.asString (stream, "utf-8");
}
//
if ("file".equals (item.getFieldName ()))
{
//
BufferedInputStream bin = new BufferedInputStream (item.openStream ());
//
String filePath = getServletContext ().getRealPath (" .xls");
File file = new File (filePath);
//
BufferedOutputStream bout = new BufferedOutputStream (new FileOutputStream (file));
byte[] b = new byte[8 * 1024];
int i = bin.read (b);
while (i > 0)
{
//
bout.write (b, 0, i);
i = bin.read (b);
}
bout.flush ();
bout.close ();
ステップ5:web.xml
<servlet-mapping>
<servlet-name>FileUpload</servlet-name>
<url-pattern>/fileupload.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FileUpload</servlet-name>
<servlet-class>net.carefx.term.server.servlet.FileUpload</servlet-class>
</servlet>
読み込みの進捗状況を実現するには、バックグラウンドでファイルの長さを取得する時間の輪訓を行います.
String fileSizeString = request.getHeader ("Content-Length");
合計長さは、ファイル書き込みストリームの書き込み回数に基づいて書き込みの割合を判断します.このデータをフロントに表示します.
ファイルアップロードにはサードパーティjarパッケージが必要です
commons-fileupload-1.2.1.jar