0

私は父が窓掃除の技術者であるため、人々が自分の個人的な画像をアップロードできるようにするための Web サイトを作成中です。彼は、人々が画像をアップロードできるようにして、コストの見積もりを提供できるようにしたいと考えています。以下に、2 ビットのコードを示します。最初のビットは正常に画像をアップロードします。私が心配する必要はありません。ただし、2 番目のビットは画像を正常にアップロードしません。私が達成したいのは、ユーザーが一連の画像 (最大 5 つ) をアップロードするたびに、現在の時刻をフォルダーの名前として設定するディレクトリに新しいフォルダーを作成することです。誰が何を送信したかを追跡します。私' 画像のみに基づいて個人を特定する方法については、まだ詳細をほとんど調べていません (おそらく、画像を送信した後に電話をかけ、送信時間を確認する人がいるでしょうか?)。MySQL を使用して PHP に結び付ける方法がわからないため、データベースをできるだけ使用せずにこれを実行しようとしています。

これは、機能し、画像を /upload に正常にアップロードするコードです。

<?php
    $uploadpath = 'upload/';
    $max_size = 4000;
    $allowtype = array('bmp', 'gif', 'jpg', 'jpe', 'png');
    if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1){
        $uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);
        $sepext = explode('.', strtolower($_FILES['fileup']['name']));
        $type = end($sepext);
        list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']);
        $err = '';
        if(!in_array($type, $allowtype)) $err .= 'The file: <b>'. $_FILES['fileup']['name']. '</b> does not have an allowed extension type.';
        if($_FILES['fileup']['size'] > $max_size*1000) $err .= '<br/>Your file exceeds the '. $max_size. ' KB. size limit.';
        if($err == ''){
            if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)){ 
                echo 'File: <b>'. basename( $_FILES['fileup']['name']). '</b> successfully uploaded:';
                echo '<br/>File type: <b>'. $_FILES['fileup']['type'] .'</b>';
            }
            else echo '<b>Unable to upload the file.</b>';
        }
        else echo $err;
    }
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    <input type="submit" name='submit' value="Upload" /> 
</form>

そして、名前としてタイムスタンプを持つ新しいフォルダーを作成するために変更しようとしているコードは次のとおりです。

<?php
    $uploadpath = 'upload/';
    $max_size = 4000;
    $allowtype = array('bmp', 'gif', 'jpg', 'jpe', 'png');
    if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1){
        $uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);
        $sepext = explode('.', strtolower($_FILES['fileup']['name']));
        $type = end($sepext);
        list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']);
        $err = '';
        if(!in_array($type, $allowtype)) $err .= 'The file: <b>'. $_FILES['fileup']['name']. '</b> does not have an allowed extension type.';
        if($_FILES['fileup']['size'] > $max_size*1000) $err .= '<br/>Your file exceeds the '. $max_size. ' KB. size limit.';
        if($err == ''){
            $uploadpath = "upload/" . time();
            $count = 0;
            foreach ($_FILES['fileup']['name'] as $filename){
                $temp = $_FILES['fileup']['tmp_name'][$count];
                move_uploaded_file($temp, $uploadpath . '/' . $filename);
                $count++;
            }
            if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)){ 
                echo 'File: <b>'. basename( $_FILES['fileup']['name']). '</b> successfully uploaded:';
                echo '<br/>File type: <b>'. $_FILES['fileup']['type'] .'</b>';
            }
            else echo '<b>Unable to upload the file.</b>';
        }
        else echo $err;
    }
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    Upload File: <input type="file" name="fileup" /><br/>
    <input type="submit" name='submit' value="Upload" /> 
</form>

2 つの主な違いは の後にありif($err == '')、コードの 2 番目のビットには、元の「ファイルの移動」コマンドを置き換えるために、ここにもう 1 つのブロックがあります。

4

1 に答える 1