うまくいきません。
300KB程度のファイルならばアップロードできるのですが
500KB以上になると「送信ボタン」をクリックすると真っ白な画面になり、
エラーも表示されず処理も完了しませんでした。
ググッたら
http://aoyama.accata.com/archives/2072
↑のような情報も見つかりましたので.htaccessに設定を
追加したのですが改善しませんでした。
ちなみにアップロードには「CLASS.UPLOAD.PHP」というライブラリを
使用しており、同じレンタルサーバーでCakePHPを使わずに構築した場合には
5MB以上のファイルのアップロードモ正常に行うことができました。
ググッても見つからなかったのですが、
CakePHPにファイル容量を制限するような設定があるのでしょうか?
ご教授のほど宜しくお願い致します。
コメント欄が開いていないので、こちらで失礼します。
まず、状況を知りたいのですが、
1.どんなフォームを作成している?
viewのテンプレートでどのようなフォームを書いているか?そして、その結果どのようなHTMLが生成されているか?を確認してみてください。
2.データは渡ってきている?
どの時点まで正しく動作しているのでしょうか?画面が真っ白になるだけでは分からないので、実際にアクションが実行されているか?あるいは、アクションに渡ってきた時点でアップロードされたデータはあるか?などを確認してみてください。
prして、exitするようなコードを書き足しながらどこで落ちているのかも確認できるでしょう。
3.サーバログは確認しましたか?
もし、上限を超えてのアップロードであればログに記録が残るでしょう。確認してみてください。
4.デバッグモードですか?
config/core.phpのDEBUGレベルが0になっていませんか?2とかにでもしてあげれば、真っ白じゃなくエラーがでるかもしれません。
これらを調べていくと、答えもでるのではないかと思いますし、これらが分かれば、別のアイディアも出せるでしょう。
何かの参考になれば。
.htaccessではなくphp.iniをちゃんと書き換えましたか?
ここのドキュメント見る限りでも
「file_max_size sets maximum upload size (default: upload_max_filesize from php.ini)」
とありますが。
ご回答ありがとうございます。
レンタルなのでphp.iniはいじれないので.htaccessに設定を書き込んだのですが
これではダメなのでしょうか?
他のサーバーでは上記のような設定で「class.upload.php」の動作自体はうまく行っているので、
CakePHP側に問題があるとおもうのですが違うのでしょうか?
上限 500KBなら下記のように設定すること
$handle->file_max_size = '512000';
ご回答ありがとうございます。
質問内容がわかりにくかったかも知れませんが、アップロードに上限を設けたいのではなく
『もっと大きいサイズのファイルをアップロードしたい』ということです。
『class.upload.php』については質問内容にもある通り、同レンタルサーバーのCakePHPを使用しなければ
5MB以上のファイルも正常にアップロード出来ていますのでこちらが原因ではないと思います。
CakePHPには容量を制限するような設定はないのでしょうか?
コメント欄が開いていないので、こちらで失礼します。
まず、状況を知りたいのですが、
1.どんなフォームを作成している?
viewのテンプレートでどのようなフォームを書いているか?そして、その結果どのようなHTMLが生成されているか?を確認してみてください。
2.データは渡ってきている?
どの時点まで正しく動作しているのでしょうか?画面が真っ白になるだけでは分からないので、実際にアクションが実行されているか?あるいは、アクションに渡ってきた時点でアップロードされたデータはあるか?などを確認してみてください。
prして、exitするようなコードを書き足しながらどこで落ちているのかも確認できるでしょう。
3.サーバログは確認しましたか?
もし、上限を超えてのアップロードであればログに記録が残るでしょう。確認してみてください。
4.デバッグモードですか?
config/core.phpのDEBUGレベルが0になっていませんか?2とかにでもしてあげれば、真っ白じゃなくエラーがでるかもしれません。
これらを調べていくと、答えもでるのではないかと思いますし、これらが分かれば、別のアイディアも出せるでしょう。
何かの参考になれば。
>1.どんなフォームを作成している?
>viewのテンプレートでどのようなフォームを書いているか?そして、その結果どのようなHTMLが生成されているか?を確認してみてください。
保存が正常に完了した場合にフラグを切り替え、入力と完了画面を1枚のテンプレートで行っています。
結果は本当に真っ白です。ページもローカルに保存して確認しましたが何も無いです。
繰り返しになりますが、容量の小さいファイルアップロードした場合は正常に動作します。
>2.データは渡ってきている?
>どの時点まで正しく動作しているのでしょうか?画面が真っ白になるだけでは分からないので、実際にアクションが実行されているか?あるいは、アクショ
>ンに渡ってきた時点でアップロードされたデータはあるか?などを確認してみてください。
アクションは実行されているかと思います。どの時点まで正しく動作しているか確認したところ「class.upload.php」を用い、リサイズしてアップロードするためのコンポーネント内の
$handle->Process($path);(アップロードの実行)
で止まっているようです。該当箇所を削除すると正常に完了画面まで移行できました。(当然ながらファイルのアップロードはできていませんでしたが・・・&さんざんCakePHPの方に原因があるように書きましたがこちらのようでした。すみません。)
念のためkm1967さんに教えて頂いた
$handle->file_max_size = '50000000';
というのも記述しましたがやっぱり出来ませんでした。
書き忘れましたがフォームのアクションを実行する前に
http://blog.flup.jp/2007/07/07/php_image_realtime_preview/
↑を使って画像プレビューを行っておりその時点でこちらでは大きいファイルもサーバーにアップロード出来ています。
>3.サーバログは確認しましたか?
>もし、上限を超えてのアップロードであればログに記録が残るでしょう。確認してみてください。
こちらはちょっと分からないので確認してみます。
>4.デバッグモードですか?
デバックモードは2になっています。
まずはお願いなのですが、
どのようなレンタルサーバを借りているのか、契約コースは何か、
どのように設置したのか、どのように設定したのか、
何も判らないとアドバイスは難しくなりますので、必須だとご記憶ください。
不適当な回答が集まっても混乱をきたしますから、私への返信欄か、
コメント欄に、書き加えておくことを勧めます。
>1.どんなフォームを作成している?
>viewのテンプレートでどのようなフォームを書いているか?そして、その結果どのようなHTMLが生成されているか?を確認してみてください。
保存が正常に完了した場合にフラグを切り替え、入力と完了画面を1枚のテンプレートで行っています。
結果は本当に真っ白です。ページもローカルに保存して確認しましたが何も無いです。
繰り返しになりますが、容量の小さいファイルアップロードした場合は正常に動作します。
>2.データは渡ってきている?
>どの時点まで正しく動作しているのでしょうか?画面が真っ白になるだけでは分からないので、実際にアクションが実行されているか?あるいは、アクショ
>ンに渡ってきた時点でアップロードされたデータはあるか?などを確認してみてください。
アクションは実行されているかと思います。どの時点まで正しく動作しているか確認したところ「class.upload.php」を用い、リサイズしてアップロードするためのコンポーネント内の
$handle->Process($path);(アップロードの実行)
で止まっているようです。該当箇所を削除すると正常に完了画面まで移行できました。(当然ながらファイルのアップロードはできていませんでしたが・・・&さんざんCakePHPの方に原因があるように書きましたがこちらのようでした。すみません。)
念のためkm1967さんに教えて頂いた
$handle->file_max_size = '50000000';
というのも記述しましたがやっぱり出来ませんでした。
書き忘れましたがフォームのアクションを実行する前に
http://blog.flup.jp/2007/07/07/php_image_realtime_preview/
↑を使って画像プレビューを行っておりその時点でこちらでは大きいファイルもサーバーにアップロード出来ています。
>3.サーバログは確認しましたか?
>もし、上限を超えてのアップロードであればログに記録が残るでしょう。確認してみてください。
こちらはちょっと分からないので確認してみます。
>4.デバッグモードですか?
デバックモードは2になっています。