- - PR -
アップロードファイルのcontentType
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-02-03 15:39
こんにちは。
クロスブラウザ対応で、ファイルアップロードをしてます。 Webwork2のフレームワークを使ったWebアプリを作ってます。 IE6では問題ないのですが、Chorme & Safariでは、ファイルアップロードができません。 Exceptionにも何も吐かれず、Actionのvalidateには入ってきていて、execute()には 入ってこないので、何が原因か途方にくれてましたが、jpeg形式はアップロードでき、 zip形式だとダメなのに気がつきました。 jpg : "image/jpeg" zip : "null" このzipの時ですが、validate()は感知するので、ここで fileContentTypeに「application/zip」をセットしているのですが、 execute()に入ってきません。 そもそもvalidate()でこのようにセットする事が邪道ですが、 ブラウザがcontentTypeを読み取ってくれない場合はどうすればよいのでしょうか? |
|
投稿日時: 2009-02-03 20:12
拡張子 .zip で判定するのは?
|
|
投稿日時: 2009-02-03 21:53
ありがとうございます。
このcontentTypeをどこでセットするべきか分かりません・・。JavaActionのvalidate()には全ブラウザ入ってくるので、ここでthis.setContentType()とやっているのですが・・。 もしかして、requestにセットしないといけないのかも知れませんが、その方法が分かりません・・。 |
|
投稿日時: 2009-02-04 17:24
よくわかりませんが、web.xmlでmimeタイプを設定するとかはどうでしょう?
ちなみに、responseのsetContenttype()はファイルのダウンロードとかで設定しません? |
|
投稿日時: 2009-02-04 19:49
あぁ、全くの盲点でした。
確かにDownLoadで違う、contentTypeを設定していました。 そこで、application/zipに変えてみたんですが、結果は同じでした。 ちなみにログですが、 2009/02/04 19:42:05 com.opensymphony.webwork.interceptor.FileUploadInterceptor intercept 情報: file file null さんぷる.zip D:\Tomcat6\work\Catalina\localhost\test\upload_247662e8_11f40e15ae0__8000_00000001.tmp のように、nullになってます。 IE・FFだと 情報: file file application/x-zip-compressed さんぷる.zip と出力されます。 ん〜・・ |
|
投稿日時: 2009-02-05 13:51
原因はFileUploadのInterceptorにありました。
この時点で、contentTypeはnullなのですが、uploadFileの存在チェックだけで、 次処理へ進み、Actionのexecute()でこけてた用に思います。 Safari, Chromeでも動きました。 |
1