Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
System
>
TERASOLUNA Framework
>
Foren
>
Offene Diskussion
>
アップロードファイルサイズ上限設定
TERASOLUNA Framework
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Downloads
Aller Releases-Liste
Statistiken
Quellcode
Quellcode-Repositorys-Liste
Subversion
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Wiki
Titelseite
Titel-Index
Kürzliche Änderungen
Doc Mgr
List Docs
Kommunikation
Foren
Forum-Liste
Offene Diskussion (1277)
Mailinglisten
Alle Mailinglisten
terasoluna-information
Neuigkeiten
Foren:
Offene Diskussion
(Thread #34795)
Zurück zur Thread-Liste
RSS
アップロードファイルサイズ上限設定 (2013-12-03 09:53 by
Anonym
#70976)
Antworten
Ticket erstellen
ファイルアップロードのアップロードファイルサイズ上限設定について教えてください。
Web版の機能説明書を参考に
struts-config.xmlに以下のようにファイルサイズを定義してみました。
<controller processorClass="jp.terasoluna.fw.web.struts.action.RequestProcessorEx" nocache="true" maxFileSize="4M"/>
この設定で、定義サイズ以下のファイルなら正常にアップロードできるのですが、超えると処理がどこかへ飛んでいってしまっているようで、画面(ブラウザ)が真っ白になってしまいます。
memFileSize、tempDirを設定してみても状況は変わりませんでした。
例外が発生した時の処理が定義できていないような気がするのですが、
FormFileを使用するBLogicでtry catchしようにも、そこまで処理が来ていないようです。
作成した独自クラスを使って、validator name="file"を定義してみましたが、こちらでも、validatorのクラスに処理が来る前に真っ白になっているようです。
どのようにすればよいでしょうか?
Reply to #70976
×
Subjekt
Körper
Reply To Message #70976 > ファイルアップロードのアップロードファイルサイズ上限設定について教えてください。 > > Web版の機能説明書を参考に > struts-config.xmlに以下のようにファイルサイズを定義してみました。 > <controller processorClass="jp.terasoluna.fw.web.struts.action.RequestProcessorEx" nocache="true" maxFileSize="4M"/> > > この設定で、定義サイズ以下のファイルなら正常にアップロードできるのですが、超えると処理がどこかへ飛んでいってしまっているようで、画面(ブラウザ)が真っ白になってしまいます。 > > memFileSize、tempDirを設定してみても状況は変わりませんでした。 > > 例外が発生した時の処理が定義できていないような気がするのですが、 > FormFileを使用するBLogicでtry catchしようにも、そこまで処理が来ていないようです。 > > 作成した独自クラスを使って、validator name="file"を定義してみましたが、こちらでも、validatorのクラスに処理が来る前に真っ白になっているようです。 > > どのようにすればよいでしょうか?
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen
RE: アップロードファイルサイズ上限設定 (2013-12-03 12:08 by
taromaru
#70978)
Antworten
Ticket erstellen
ファイルサイズがmaxFileSizeを超えた場合、
アクションフォームへの反映は抑止されますが、
例外がスローされるわけではなく、
リクエスト属性「org.apache.struts.upload.MaxLengthExceeded」にBooleanのTRUEが設定されるだけです。
(Strutsの機能です。)
BLogicでサイズオーバーの判定を行う場合は、
blogic-ioのblogic-paramsにて、
<set-property property="org.apache.struts.upload.MaxLengthExceeded" source="request"
blogic-property="maxLengthExceeded" />
のようにして、
リクエスト属性「org.apache.struts.upload.MaxLengthExceeded」の値をBLogicで参照できるようにしておきます。
なお、アップロード用アクションフォームをrequestスコープにしている限り、
サイズオーバー時は、FormFileがnullになるため、
サイズオーバーチェックをしていなかった場合は、
大抵どこかの処理でNullPointerExceptionが発生し、
例外ハンドラによってエラーページに遷移するはずです。
# アップロード用アクションフォームをsessionスコープにしている場合は、
# 直前にアップロードに成功したFormFileのオブジェクトが残っているため、
# これがBLogicにわたります。
# メモリ内に展開されるような小容量のファイルであれば、データが残っているため、再度アップロードされたかのような処理を行うことになります。
# 一時ファイルに展開されるような容量のファイルであれば、FormFile#destroyの呼び忘れがない前提では、
# FormFile#getInputStreamでnullが返却されることになります。
エラーページに遷移しないということは、
NullPointerException(あるいはそのスーパークラス)がcatchされて握りつぶされているか、
オブジェクトのnullチェックを行っていて、null時の処理ルートに入っていることが考えられます。
画面(ブラウザ)が真っ白という事象は、
遷移先情報が与えられないまま、例外も発生せずに処理が終了した場合に発生するものです。
たとえば
BLogicResult#setResultStringに与えた文字列と、struts-confogでforward要素のname属性に設定した文字列が異なっていたり、
BLogicResult#setResultStringを呼び忘れていたり、
struts-confogの方で設定が漏れていたり、
といった場合に発生します。
サイズオーバー時に通りうる処理ルートを確認してみてください。
※BLogicを使用しているようなので、BLogicActionが利用されている前提で書きましたが、
Actionを自作している場合は、同じ観点で確認してください。
Reply to
#70976
Reply to #70978
×
Subjekt
Körper
Reply To Message #70978 > ファイルサイズがmaxFileSizeを超えた場合、 > アクションフォームへの反映は抑止されますが、 > 例外がスローされるわけではなく、 > リクエスト属性「org.apache.struts.upload.MaxLengthExceeded」にBooleanのTRUEが設定されるだけです。 > (Strutsの機能です。) > > BLogicでサイズオーバーの判定を行う場合は、 > blogic-ioのblogic-paramsにて、 > <set-property property="org.apache.struts.upload.MaxLengthExceeded" source="request" > blogic-property="maxLengthExceeded" /> > のようにして、 > リクエスト属性「org.apache.struts.upload.MaxLengthExceeded」の値をBLogicで参照できるようにしておきます。 > > なお、アップロード用アクションフォームをrequestスコープにしている限り、 > サイズオーバー時は、FormFileがnullになるため、 > サイズオーバーチェックをしていなかった場合は、 > 大抵どこかの処理でNullPointerExceptionが発生し、 > 例外ハンドラによってエラーページに遷移するはずです。 > # アップロード用アクションフォームをsessionスコープにしている場合は、 > # 直前にアップロードに成功したFormFileのオブジェクトが残っているため、 > # これがBLogicにわたります。 > # メモリ内に展開されるような小容量のファイルであれば、データが残っているため、再度アップロードされたかのような処理を行うことになります。 > # 一時ファイルに展開されるような容量のファイルであれば、FormFile#destroyの呼び忘れがない前提では、 > # FormFile#getInputStreamでnullが返却されることになります。 > エラーページに遷移しないということは、 > NullPointerException(あるいはそのスーパークラス)がcatchされて握りつぶされているか、 > オブジェクトのnullチェックを行っていて、null時の処理ルートに入っていることが考えられます。 > > 画面(ブラウザ)が真っ白という事象は、 > 遷移先情報が与えられないまま、例外も発生せずに処理が終了した場合に発生するものです。 > たとえば > BLogicResult#setResultStringに与えた文字列と、struts-confogでforward要素のname属性に設定した文字列が異なっていたり、 > BLogicResult#setResultStringを呼び忘れていたり、 > struts-confogの方で設定が漏れていたり、 > といった場合に発生します。 > サイズオーバー時に通りうる処理ルートを確認してみてください。 > > ※BLogicを使用しているようなので、BLogicActionが利用されている前提で書きましたが、 > Actionを自作している場合は、同じ観点で確認してください。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Anmelden
Nickname
Vorschau
Eintrag
Abbrechen