0

私はこのファイルアップローダーを使用しており、アップロードされたファイルの実際のコンテンツを検証して、それが実際に画像であることを確認することにしました。getimagesize()そこで、ファイル名を取得するPHP関数を使用したいと思います。しかし、ないので、私はそれを機能$_FILES['xxx']['tmp_name']に渡します。getimagesizeアップロードプロセスで実際のコンテンツタイプを検証するために何をお勧めしますか?

/**
 * Handle file uploads via XMLHttpRequest
 */
class qqUploadedFileXhr {
    /**
     * Save the file to the specified path
     * @return boolean TRUE on success
     */
    function save($path) {    
        $input = fopen("php://input", "r");
        $temp = tmpfile();
        $realSize = stream_copy_to_stream($input, $temp);
        fclose($input);

        $target = fopen($path, "w");        
        fseek($temp, 0, SEEK_SET);
        stream_copy_to_stream($temp, $target);
        fclose($target);

        return true;
    }
    function getName() {
        return $_GET['qqfile'];
    }
    function getImageInfo() {
        return getimagesize($_GET['qqfile']); /* no such file or directory */
    }
}

アップデート

if ($this->file->save($uploadDirectory . $filename . $ext)){
    // if only images are allowed to upload
    if ($imgOnly)
    {
            // get image size and if $imgInfo were false delete uploaded file
        $imgInfo = getimagesize($uploadDirectory . $filename . $ext);
        if (!$imgInfo)
        {
            unlink($uploadDirectory . $filename . $ext);
            return array('error' => 'The file uploaded is not actual image file.');
        }
    }
    return array('success'=>true);
} else {
    return array('error'=> 'Could not save uploaded file.' .
        'The upload was cancelled, or server error encountered');
}
4

1 に答える 1

1

この関数saveは文字列パラメータを受け取り、アップロードされた画像をそのパスのファイルに保存します。したがって、渡すファイル名を開くだけですsave()

于 2012-10-11T08:15:02.123 に答える