OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ファイルをダウンロードして展開するようにしたい

  • 困ってます
  • 質問No.200630
  • 閲覧数309
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 32% (45/139)

urizakaです。

さて、JSP+SQL-Server2000でExcel等のファイルをバイナリデータとしてDB
のimageフィールドに登録して、それをダウンロードするというプログラムを
組んでおり、なんとかファイル名とそのバイナリ-データをアップロードすることはできるようになったのですが、その後、バイナリ-データをDBからダウンロードして、その後にどのようにすれば良いのかが分かりません。
 バイナリ-データをDBから検索して持ってきて、ブラウザー上でそのファイルが展開されるようにしていのですが…(よくPDFのサイトを開くと、自動的にPDFが展開されるように)
 バイナリ-データにファイル名とそのファイルのタイプを与えてやれば良いような気もするのですが、それをどうやって与えてやればいいのかも皆目見当がつきません。すみませんが、ご存知の方がいらっしゃったら教えてください。
 宜しくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル8

ベストアンサー率 60% (21/35)

かなり昔にやったのでうろ覚えですが...

1.コンテントタイプの指定(Download だけならapplication/octet-streamでもいいかも)
response.setContentType(コンテントタイプ);

2.ファイルサイズの指定
response.setContentLength(ファイルサイズ);

3.ファイル名の指定
response.setHeader("Content-Disposition", "attachment; filename=\" +
ファイル名 + "\"");
response.setHeader("Content-Disposition", "inline; filename=\" +
ファイル名 + "\"");
たしか昔attachmentかinlineかで悩んだ記憶があって、どっちだったか思い出せません。
すいませんがこれで確かめてみて下さい。
お礼コメント
urizaka

お礼率 32% (45/139)

urizakaです

回答ありがとうございます。

色々試してみて何とかできました。
しかしながら、このDBにデータを収める方法ってあまりパフォーマンス的によくないですね。アップロードはともかく、ダウンロードで共有フォルダを使う方法と比べていい結果が出ませんね…私のプログラムの仕方が悪いのかもしれませんが。

以前、同じ方法を行われたということですが、akinori_sさんの時はパフォーマンス的にはどうでしたか?

それでは
投稿日時 - 2002-01-25 20:00:34
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル6

ベストアンサー率 40% (2/5)

私はServlet+OracleDBで経験がありますが、ずいぶん前の話で大まかなことしか覚えていません。しかし参考になるかもしれないのでお伝えします。 OracleDBにBLOBで入っているイメージをInputStreamで取り出しそのデータをServletのOutputStreamに書き込んだら出来ました。ただそのときcontent-typeなどの設定もした憶えがありますが、どのように設定したかは憶え ...続きを読む
私はServlet+OracleDBで経験がありますが、ずいぶん前の話で大まかなことしか覚えていません。しかし参考になるかもしれないのでお伝えします。
OracleDBにBLOBで入っているイメージをInputStreamで取り出しそのデータをServletのOutputStreamに書き込んだら出来ました。ただそのときcontent-typeなどの設定もした憶えがありますが、どのように設定したかは憶えていません。Excelもバイナリなら同じ方法でcontent-typeをExcelに定義されているものにすればいいのではないでしょうか?Servletでの話ですが。
  • 回答No.2
レベル6

ベストアンサー率 40% (2/5)

すみません。まとまりなくて。 また少し思い出しました。前回答に加えファイル名をresponseに設定した憶えがあります。うる憶えですみません。 ...続きを読む
すみません。まとまりなくて。
また少し思い出しました。前回答に加えファイル名をresponseに設定した憶えがあります。うる憶えですみません。
お礼コメント
urizaka

お礼率 32% (45/139)

urizakaです

 ありがとうございます、おかげでなんとかできました。
しかしながら、このDBを使う方法ですが1MBぐらいまでならともかく、それ
以上の容量になると共有フォルダを使う方法に比べて非常にパフォーマンスが
悪いですね。
 私のプログラムの書き方が悪いだけかもしれませんが…

 imamuさんがプログラミングした時はどうでしたか?

 それでは。
投稿日時 - 2002-01-25 20:08:44
  • 回答No.4
レベル6

ベストアンサー率 40% (2/5)

返事遅れました。すみません。 パフォーマンスは悪かったですよ。 仕方ないと思います。 では、ガンバッテください。
返事遅れました。すみません。

パフォーマンスは悪かったですよ。
仕方ないと思います。
では、ガンバッテください。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ