0

私はphpが初めてです。この問題の解決策を 1 時間以上探しましたが、答えが見つかりませんでした。

状況の例: アップロードされたファイルの拡張子とサイズを確認し、失敗するたびにエラーをエコーアウトします (ある場合) (最初の失敗で停​​止します)。

これまでのコード:

$allowedfiletypes = array("image/jpg","image/jpeg","image/png");
if((!in_array($filetype, $allowedfiletypes))) {
    echo "Error, disallowed file type.";
} elseif($filesize > 1048576) {
    echo 'Filesize too large';
} else {
    move_uploaded_file($filetmpname, $uploaddir."/".$filename);
    echo 'The file has the following properties:'." ".$filename.", ".$filesize."kb, ".$filetype.".".'<br><br>';
    echo ' The file is stored in'.$uploaddir.$filename;
}

ただし、ファイルサイズが指定された制限を超えている場合、これは機能しません。

どうすればいいif() {echo 'error1';} || if {echo 'error2'.} else {}ですか?

4

2 に答える 2

1

なぜフラグを使用しないのですか?

$error1 = 1;
$error2 = 1;

if($error1 && $error2) { ... }

または、エラー カウンターを使用してdie、特定のカウントに達した場合。

于 2013-02-11T21:45:10.557 に答える
0

何が必要かは100%わかりませんが、両方のエラーをユーザーに表示したい場合は、次のように機能するはずです。

$allowedfiletypes = array("image/jpg","image/jpeg","image/png");
$fileTypes = true;
$fileSize = true;
if((!in_array($filetype, $allowedfiletypes)))
   $fileTypes = false;

if($filesize > 1048576)
    $fileSize = false;

if ($fileSize && $fileTypes) {
    move_uploaded_file($filetmpname, $uploaddir."/".$filename);
    echo '<p>The file has the following properties:'." ".$filename.", ".$filesize."kb, ".$filetype.".</p>";
    echo '<p>The file is stored in'.$uploaddir.$filename.'</p>';
}
else {
    if (!$fileSize)
        echo '<p>Filesize too large</p>';
    if (!$fileTypes)
        echo "<p>Error, disallowed file type.</p>";
}
于 2013-02-11T21:57:32.667 に答える