0

私は楽しみのために既製の画像アップロード テンプレートに取り組んできましたが、PHP があまり得意ではないので、この問題を回避できないようです。

$upload_dirページで使用できるように、画像への直接リンク (変数 + ファイル拡張子)を抽出できる必要がありindex.phpます。post_file.php自分のファイルを自分のファイルに含めようとしましたindex.phpが、Wrong HTTP-methodメッセージが表示されます。

私のウェブサイトは入っhtml5ていて、アップロード ファイルに問題がある場合は、ドラッグ アンド ドロップを使用してアップロードを開始しています。

post_file.php :

$demo_mode = false;
$upload_dir = 'uploads/'.date(d).rand(0000,9999);
$allowed_ext = array('jpg','jpeg','png','gif');

if (strtolower($_SERVER['REQUEST_METHOD']) != 'post') {
    exit_status('Error! Wrong HTTP method!');
}

if (array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ) {
    $pic = $_FILES['pic'];

    if (!in_array(get_extension($pic['name']),$allowed_ext)) {
        exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
    }    

    // Uploads are being ignored, but logged.
    if ($demo_mode) {
        $line = implode('        ', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
        file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);

        exit_status('Uploads are ignored in demo mode.');
    }

    // Move image,rename it and log it all
    if (move_uploaded_file($pic['tmp_name'], $upload_dir.'.'.get_extension($pic['name']))) {         
        $line = implode('        ', array( date(r),    'http://website.com/'.$upload_dir.'.'.get_extension($pic['name'])));
        file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);

        exit_status('Upload was successful');
    }
}

exit_status('Something went wrong with your upload!');

機能

function exit_status($str) {
    echo json_encode(array('status'=>$str));
    exit;
}

function get_extension($file_name) {
    $ext = explode('.', $file_name);
    $ext = array_pop($ext);
    return strtolower($ext);
}

エラー メッセージが表示されたときに isを使用すると、ファイルinclude('post_file.php')に を含めずに新しいイメージ名 + パスと拡張子を取得し、それを変数にエコーするにはどうすればよいですか?post_file.phpindex.php

前もって感謝します!

4

0 に答える 0