⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.class.php

📁 phpMyAdmin图形界面化操作,我已经配置好了,只要把解要压缩后的文件放到站点下就可以用了
💻 PHP
📖 第 1 页 / 共 3 页
字号:
     * @uses    $GLOBALS['cfg']['UploadDir']     * @param   string  $name     * @return  boolean success     */    function setLocalSelectedFile($name)    {        if (empty($GLOBALS['cfg']['UploadDir'])) return false;        $this->setName(PMA_userDir($GLOBALS['cfg']['UploadDir']) . PMA_securePath($name));        if (! $this->isReadable()) {            $this->_error_message = $GLOBALS['strFileCouldNotBeRead'];            $this->setName(null);            return false;        }        return true;    }    /**     * @access  public     * @uses    PMA_File::getName()     * @uses    is_readable()     * @uses    ob_start()     * @uses    ob_end_clean()     * @return  boolean whether the file is readable or not     */    function isReadable()    {        // suppress warnings from being displayed, but not from being logged        // any file access outside of open_basedir will issue a warning        ob_start();        $is_readable = is_readable($this->getName());        ob_end_clean();        return $is_readable;    }    /**     * If we are on a server with open_basedir, we must move the file     * before opening it. The FAQ 1.11 explains how to create the "./tmp"     * directory - if needed     *     * @todo replace error message with localized string     * @todo move check of $cfg['TempDir'] into PMA_Config?     * @access  public     * @uses    $cfg['TempDir']     * @uses    $GLOBALS['strFieldInsertFromFileTempDirNotExists']     * @uses    PMA_File::isReadable()     * @uses    PMA_File::getName()     * @uses    PMA_File::setName()     * @uses    PMA_File::isTemp()     * @uses    PMA_File::$_error_message     * @uses    is_dir()     * @uses    mkdir()     * @uses    chmod()     * @uses    is_writable()     * @uses    basename()     * @uses    move_uploaded_file()     * @uses    ob_start()     * @uses    ob_end_clean()     * @return  boolean whether uploaded fiel is fine or not     */    function checkUploadedFile()    {        if ($this->isReadable()) {            return true;        }        if (empty($GLOBALS['cfg']['TempDir']) || ! is_writable($GLOBALS['cfg']['TempDir'])) {            // cannot create directory or access, point user to FAQ 1.11            $this->_error_message = $GLOBALS['strFieldInsertFromFileTempDirNotExists'];            return false;        }        $new_file_to_upload = tempnam(realpath($GLOBALS['cfg']['TempDir']), basename($this->getName()));        // suppress warnings from being displayed, but not from being logged        // any file access outside of open_basedir will issue a warning        ob_start();        $move_uploaded_file_result = move_uploaded_file($this->getName(), $new_file_to_upload);        ob_end_clean();        if (! $move_uploaded_file_result) {            $this->_error_message = 'error while moving uploaded file';            return false;        }        $this->setName($new_file_to_upload);        $this->isTemp(true);        if (! $this->isReadable()) {            $this->_error_message = 'cannot read (moved) upload file';            return false;        }        return true;    }    /**     * Detects what compression filse uses     *     * @todo    move file read part into readChunk() or getChunk()     * @todo    add support for compression plugins     * @uses    $GLOBALS['strFileCouldNotBeRead']     * @uses    PMA_File::$_compression to set it     * @uses    PMA_File::getName()     * @uses    fopen()     * @uses    fread()     * @uses    strlen()     * @uses    fclose()     * @uses    chr()     * @uses    substr()     * @access  protected     * @return  string MIME type of compression, none for none     */    function _detectCompression()    {        // suppress warnings from being displayed, but not from being logged        // f.e. any file access outside of open_basedir will issue a warning        ob_start();        $file = fopen($this->getName(), 'rb');        ob_end_clean();        if (! $file) {            $this->_error_message = $GLOBALS['strFileCouldNotBeRead'];            return false;        }        /**         * @todo         * get registered plugins for file compression        foreach (PMA_getPlugins($type = 'compression') as $plugin) {            if (call_user_func_array(array($plugin['classname'], 'canHandle'), array($this->getName()))) {                $this->setCompressionPlugin($plugin);                break;            }        }         */        $test = fread($file, 4);        $len = strlen($test);        fclose($file);        if ($len >= 2 && $test[0] == chr(31) && $test[1] == chr(139)) {            $this->_compression = 'application/gzip';        } elseif ($len >= 3 && substr($test, 0, 3) == 'BZh') {            $this->_compression = 'application/bzip2';        } elseif ($len >= 4 && $test == "PK\003\004") {            $this->_compression = 'application/zip';        } else {            $this->_compression = 'none';        }        return $this->_compression;    }    /**     * whether the content should be decompressed before returned     */    function setDecompressContent($decompress)    {        $this->_decompress = (bool) $decompress;    }    function getHandle()    {        if (null === $this->_handle) {            $this->open();        }        return $this->_handle;    }    function setHandle($handle)    {        $this->_handle = $handle;    }    /**     *     */    function open()    {        if (! $this->_decompress) {            $this->_handle = @fopen($this->getName(), 'r');        }        switch ($this->getCompression()) {            case false:                return false;            case 'application/bzip2':                if ($GLOBALS['cfg']['BZipDump'] && @function_exists('bzopen')) {                    $this->_handle = @bzopen($this->getName(), 'r');                } else {                    $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());                    return false;                }                break;            case 'application/gzip':                if ($GLOBALS['cfg']['GZipDump'] && @function_exists('gzopen')) {                    $this->_handle = @gzopen($this->getName(), 'r');                } else {                    $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());                    return false;                }                break;            case 'application/zip':                if ($GLOBALS['cfg']['ZipDump'] && @function_exists('zip_open')) {                    include_once './libraries/zip_extension.lib.php';                    $result = PMA_getZipContents($this->getName());                    if (! empty($result['error'])) {                        $this->_error_message = PMA_Message::rawError($result['error']);                        return false;                    } else {                        $this->content_uncompressed = $result['data'];                    }                    unset($result);                } else {                    $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());                    return false;                }                break;            case 'none':                $this->_handle = @fopen($this->getName(), 'r');                break;            default:                $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());                return false;                break;        }    }    function getCharset()    {        return $this->_charset;    }    function setCharset($charset)    {        $this->_charset = $charset;    }    /**     * @uses    PMA_File::$_compression as return value     * @uses    PMA_File::detectCompression()     * @return  string MIME type of compression, none for none     * @access  public     */    function getCompression()    {        if (null === $this->_compression) {            return $this->_detectCompression();        }        return $this->_compression;    }    /**     * advances the file pointer in the file handle by $length bytes/chars     *     * @param   integer $length numbers of chars/bytes to skip     * @return  boolean     * @todo this function is unused     */    function advanceFilePointer($length)    {        while ($length > 0) {            // Disable read progresivity, otherwise we eat all memory!            $read_multiply = 1; // required?            $this->getNextChunk($length);            $length -= $this->getChunkSize();        }    }    /**     * http://bugs.php.net/bug.php?id=29532     * bzip reads a maximum of 8192 bytes on windows systems     * @todo this function is unused     */    function getNextChunk($max_size = null)    {        if (null !== $max_size) {            $size = min($max_size, $this->getChunkSize());        } else {            $size = $this->getChunkSize();        }        // $result = $this->handler->getNextChunk($size);        $result = '';        switch ($this->getCompression()) {            case 'application/bzip2':                $result = '';                while (strlen($result) < $size - 8192 && ! feof($this->getHandle())) {                    $result .= bzread($this->getHandle(), $size);                }                break;            case 'application/gzip':                $result = gzread($this->getHandle(), $size);                break;            case 'application/zip':                /*                 * if getNextChunk() is used some day,                 * replace this code by code similar to the one                 * in open()                 *                include_once './libraries/unzip.lib.php';                $import_handle = new SimpleUnzip();                $import_handle->ReadFile($this->getName());                if ($import_handle->Count() == 0) {                    $this->_error_message = $GLOBALS['strNoFilesFoundInZip'];                    return false;                } elseif ($import_handle->GetError(0) != 0) {                    $this->_error_message = $GLOBALS['strErrorInZipFile']                        . ' ' . $import_handle->GetErrorMsg(0);                    return false;                } else {                    $result = $import_handle->GetData(0);                }                 */                break;            case 'none':                $result = fread($this->getHandle(), $size);                break;            default:                return false;        }        echo $size . ' - ';        echo strlen($result) . ' - ';        echo (@$GLOBALS['__len__'] += strlen($result)) . ' - ';        echo $this->_error_message;        echo '<hr />';        if ($GLOBALS['charset_conversion']) {            $result = PMA_convert_string($this->getCharset(), $GLOBALS['charset'], $result);        } else {            /**             * Skip possible byte order marks (I do not think we need more             * charsets, but feel free to add more, you can use wikipedia for             * reference: <http://en.wikipedia.org/wiki/Byte_Order_Mark>)             *             * @todo BOM could be used for charset autodetection             */            if ($this->getOffset() === 0) {                // UTF-8                if (strncmp($result, "\xEF\xBB\xBF", 3) == 0) {                    $result = substr($result, 3);                // UTF-16 BE, LE                } elseif (strncmp($result, "\xFE\xFF", 2) == 0                 || strncmp($result, "\xFF\xFE", 2) == 0) {                    $result = substr($result, 2);                }            }        }        $this->_offset += $size;        if (0 === $result) {            return true;        }        return $result;    }    function getOffset()    {        return $this->_offset;    }    function getChunkSize()    {        return $this->_chunk_size;    }    function setChunkSize($chunk_size)    {        $this->_chunk_size = (int) $chunk_size;    }    function getContentLength()    {        return strlen($this->_content);    }    function eof()    {        if ($this->getHandle()) {            return feof($this->getHandle());        } else {            return ($this->getOffset() >= $this->getContentLength());        }    }    /**     * sets reference to most recent BLOB repository reference     *     * @access  static public     * @param   string - BLOB repository reference    */    static function setRecentBLOBReference($ref)    {        PMA_File::$_recent_bs_reference = $ref;    }    /**     * retrieves reference to most recent BLOB repository reference     *     * @access  static public     * @return  string - most recent BLOB repository reference    */    static function getRecentBLOBReference()    {        $ref = PMA_File::$_recent_bs_reference;        PMA_File::$_recent_bs_reference = NULL;        return $ref;    }}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -