質問: 'jpg') { if (jfile::upload($src, $dest)) { echo "upload successful"; } } else { header("location: /error.php"); } _私が直面している問題は、上記のコードを使用する場合です。1)jpg以外のファイルをアップロードしようとすると、elseステートメントが実行されます:)_else { header("location: /error.php"); } _しかし、これを使用すると、上記の代わりにif-statementが使用されます。 :_if (jfile::upload($src, $dest)) { header("location: /done.php"); } _そしてnon-jpgファイルをアップロードしようとすると、if-statementにジャンプします:_if (jfile::upload($src, $dest)) { header("location: /done.php"); } _なぜこうなった?_echo "upload successful";_をheader("location: /done.php");に変更した直後にイベントが変更されるのはなぜですか?
回答: これを試して:$app = jfactory::getapplication(); if ( strtolower(jfile::getext($filename) ) == 'jpg') { if (jfile::upload($src, $dest)) { $app->setheader('location', juri::root() . 'modules/mod_mymodule/done.php'); // success } else { $app->setheader('location', juri::root() . 'modules/mod_mymodule/error.php'); // file could not be uploaded } } else { $app->setheader('location', juri::root() . 'modules/mod_mymodule/error.php'); // incorrect file type. please select a jpg }