0

次のコードを使用してファイルをアップロードしましたが、現時点ではファイルをアップロードしてい<..>ませんが、XML ファイルをアップロードしたくありません。ファイルをアップロードするにはどうすればよいですか?

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);

    if(isMultipart){
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        try{
            List<FileItem> fields = upload.parseRequest(request);
            Iterator<FileItem> it = fields.iterator();
            while (it.hasNext()) {
                FileItem fileItem = it.next();

                out.println(fileItem.getString());
          }
        }catch (FileUploadException e) {
            e.printStackTrace();
        }       
    }
}

編集:たとえば、を含むファイルをアップロードすると、Screens><ScreenのみScreens>が出力されます。

4

2 に答える 2

1

コードの問題はすぐにはわかりませんが、

response.setContentType("text/html;charset=UTF-8");

受信側のブラウザーに html を取得していることを伝えているため、受信したデータを HTML として解釈しようとします。適切なコンテンツ タイプを使用してデータを送信してみてください。

response.setContentType("application/xml;charset=UTF-8");

私を困惑させるのは、あなたの発言のタグです:Screens><Screen それは有効なxmlではありません。コンテンツ タイプを修正してもうまくいかない場合は、実際のテスト (データの最小限のサンプルに似たもの) を実際の出力と共に質問に追加できます。

于 2013-07-15T08:16:59.620 に答える
0

ブラウザーで出力を表示している場合は、ソース コードを表示してみてください。

IE の場合 - ページを右クリックし、[ソースの表示] を選択します。

FF & Chrome の場合 - ページを右クリックし、[ページのソースを表示] を選択します。

于 2013-07-15T00:32:47.720 に答える