0

連絡先のアドレス帳を作成していますが、ユーザーが連絡先の写真をアップロードしてサーバーに保存する機能を追加したいと考えています。以下はクライアント側のコードです

public class FileUploadDialog extends Composite 
{
    private VerticalPanel panel = new VerticalPanel();
    private DecoratorPanel dPan = new DecoratorPanel();

    public FileUploadDialog()
    {

        initWidget(dPan);
        dPan.setWidget(panel);

        // create a FormPanel
        //final FormPanel form = new FormPanel();
        // create a file upload widget
        final FileUpload fileUpload = new FileUpload();
        // create labels
        Label selectLabel = new Label("Select a file:");
        // create upload button
        Button uploadButton = new Button("Upload File");

        // add a label
        panel.add(selectLabel);
        // add fileUpload widget
        panel.add(fileUpload);
        // add a button to upload the file
        panel.add(uploadButton);

        uploadButton.addClickHandler(new ClickHandler() 
        {
            @Override
            public void onClick(ClickEvent event) {
                // get the filename to be uploaded
                String filename = fileUpload.getFilename();
                if (filename.length() == 0) {
                    Window.alert("No File Specified!");
                } else 
                {
                    System.out.println("submited");
                }
            }
        });         
    }
}

私の質問は、rpc 呼び出しを使用して画像ファイルをサーバーに送信するにはどうすればよいですか?

4

1 に答える 1

1

RPC を使用する場合は、最初に画像の内容を byte[] として取得してからサーバーに送信する必要があります。これは、ターゲット ブラウザが FileAPI を実装している場合にのみ実行できます。lib-gtw-fileやgwt- file-apiなど、FileAPI を公開するライブラリがいくつかあります。または、JSNI (これはすべてのライブラリが行っていることです) を使用して、ファイルの内容を取得することもできます。

HTML5 をサポートしていないブラウザーをターゲットにしている場合は、解析可能な応答で簡単なフォーム送信を簡単に行うことができます。いずれにせよ、RPC を使用するよりもおそらく良い方法です。

于 2013-07-23T20:20:43.477 に答える