- - PR -
au携帯で3g2ファイルが不明ファイルとなる。(java)
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-07-24 16:54
au携帯にて3g2ファイル(EZムービー)をServlet(Java)経由でダウンロードした際、不明ファイルとして携帯に登録されてしまいます。
直リンク(普通にURLをうちこんで)やりダイレクト(サーブレットからファイルURLへ遷移)でダウンロードした際は、(EZムービー)として携帯に登録されます。 バイナリー出力するとだめになります。 PHPで同じようなことをしているのを見つけましたが・・・ 理由がわからず困っています ! わかる方いましたら教えてください ! ----------------------------------Objectタグ側 <object data="http://サーブレットのURL/" type="video/3gpp2" copyright="no" standby="ダウンロード"> </object> ---------------------------------- ----------------------------------サーブレット javaソース(抜粋) public void ez_download(HttpServletRequest req,HttpServletResponse res){ // ファイル読込み File inFile = new File("ファイルのパス"); . . // 出力先取得 ServletOutputStream out = res.getOutputStream(); . . // Content-Rangeを取得 String range = req.getHeader("range"); . . //rangeより値取り出し offset = wkLen[0]; // 開始位置 end = wkLen[1]; // 終了位置 len = end - offset + 1; // 分割されたファイル長さ // ContentRange をセット res.addHeader("Accept-Ranges","bytes"); String srtRange = "bytes" + offset + "-" + end + "/" + inFile.length();; res.addHeader("Content-Range", srtRange); // LastModified をセット res.addHeader("Last-Modified",(new java.util.Date(outFile.lastModified())).toGMTString()); // ContentType をセット res.setContentType("video/3gpp2"); // ContentLength をセット res.setContentLength(len); // 出力処理 BufferedInputStream in = new BufferedInputStream(new FileInputStream(inFile)); byte buf[] = new byte[len]; in.skip(end); in.read(buf); out.write(buf,0,len); in.close(); . . } --------------------------------- ----動作環境----- Win Tomcat 4.1 機種 AU携帯 W47T ---------------- |
1