0

FormPanel、FileUpload、および Button を含むフォームがあります

        final FormPanel formPanel = new FormPanel();
    formPanel.setAction("uploadServlet");
    formPanel.setMethod(FormPanel.METHOD_POST);
    formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    formPanel.setSize("100%", "100%");
    setWidget(formPanel);


    AbsolutePanel absolutePanel = new AbsolutePanel();
    formPanel.setWidget(absolutePanel);
    absolutePanel.setSize("249px", "70px");

    final FileUpload fileUpload = new FileUpload();
    fileUpload.setName("uploadFormElement");
    absolutePanel.add(fileUpload, 0, 0);

    Button btnOpen = new Button("Open");
    absolutePanel.add(btnOpen, 10, 30);

    Button btnCancel = new Button("Cancel");
    absolutePanel.add(btnCancel, 63, 30);

    this.setText("Open...");
    this.setTitle(this.getText());
    this.setAnimationEnabled(true);
    this.setGlassEnabled(true);

    btnOpen.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) { 
            formPanel.submit();
        }
    });

サーブレットが呼び出されますが、リクエストにエラー メッセージ「エラー ポスト」が含まれています。ローカルサーバーで試してみると、リクエストにはファイルが含まれていますが、アプリエンジンサーバーではエラーのみ

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List<?> items = null;
    String json = null;     

    try {
        items = upload.parseRequest(request);
    }
    catch (FileUploadException e) {
        e.printStackTrace();
    }
    Iterator<?> it = items.iterator();
    while (it.hasNext()) {
        System.out.println("while (it.hasNext()) {");
        FileItem item = (FileItem) it.next();
        json = item.getString();
    }
    response.setContentType("text/html");

    ServletOutputStream out = response.getOutputStream();
    response.setContentLength(json.length());
    out.write(json.getBytes());
    out.close();
}
4

1 に答える 1