2011-12-06 19 views
0

できるかどうかわかりません。 私はExcelファイルを解析して、ユーザーが自分のアプリケーション(gae)でダウンロードできるようにしたいと思います。gaeのファイルをダウンロードする方法

public class dumpDataServlet extends HttpServlet { 
    public void service(HttpServletRequest req, HttpServletResponse resp) throws IOException { 
     String msg = ""; 
     boolean dumpFile = false; 
     JSONObject json = null; 
     resp.setCharacterEncoding(Constant.RESPONSE_CHARACTER_ENCODING); 
     try { 
      try { 
       msg = req.getParameter("dumpFile") + " "; 
       dumpFile = Boolean.valueOf(req.getParameter("dumpFile")); 
      } catch (Exception ex) { 
      }json = getFromOtherGAE(); 
      if (dumpFile) { 
       OutputStream out = resp.getOutputStream(); 
       this.parseExcelFile(json).write(out); //parseExcelFile will return a HSSFWorkbook 
       out.flush(); 
       out.close(); 
      } else { 
       resp.getWriter().println(json.toString()); 
      } 
     } catch (Exception ex) { 
      msg = ex.getClass() + " " + ex.getMessage(); 
      resp.getWriter().println(msg); 
     } 
    } 
} 

このコードに間違いがありますか?それともギャーはそれをすることができませんか?

ありがとうございます。

答えて

0

「json」オブジェクトを初期化したことはありません。このコードを実行するとどうなりますか?

+0

申し訳ありませんが、私はそれを修正しました。 – vic

3

ブラウザが出力をExcelとして認識するためには、いくつかのヘッダーを設定する必要があります。次のようなもの:

resp.setContentType("application/vnd.ms-excel"); 
resp.setHeader("Content-Disposition","attachment; filename=download.xls"); 
+0

私は試しました。それでも表示されます:{エラー:サーバーエラー サーバーでエラーが発生し、要求を完了できませんでした。 問題が解決しない場合は、問題を報告し、このエラーメッセージとその原因となったクエリを記述してください)。 – vic

+0

スタックトレースのログを調べます。 –

+0

私は試しました。何も見せない。私はそれが許していないからだと思う。 – vic

関連する問題