首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >phpThumb写测试失败

phpThumb写测试失败
EN

Stack Overflow用户
提问于 2012-07-07 16:16:37
回答 1查看 595关注 0票数 0

我正在尝试将我的PHP网站部署在与IIS7共享主机中。我的网站使用phpThumb库生成拇指图像。

但是拇指图像没有显示,我得到了:

用法:/#/filename.jpg读取详细用法注释

当我检查phpThumb.demo.check.php时,红色错误发生在缓存写测试中,如下所示

代码语言:javascript
运行
复制
D: / Hosting / ########### / cache / 6 / 67 / 67c / 67c4 / phpThumb_cache_########__raw67c44e91c46b79493d95da579a7fef28_par52b4fbd9e2256843fcdbe9d1f35f2875.jpeg
directory does NOT exist (before EnsureDirectoryExists())
directory does NOT exist (after EnsureDirectoryExists())
write test FAILED

目录D: / Hosting / ########### /缓存已经存在,并已更改为可写的godaddy。

但我注意到“缓存目录”和“临时目录”检查结果都是“存在/可读/可写”。

为什么phpThumb给出了“写测试失败”,尽管缓存目录是存在/可读/可写的?当我检查缓存文件夹时,会创建CacheStart.txt文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-15 17:33:15

对于共享主机,我做了以下更改,并为我自己工作。也许有其他更好的解决方案,但我只是尝试快速改变为我工作。

在phpthumb.functions.php //它将修复在缓存dir中创建子文件夹,没有它的可选缓存将不会生成

代码语言:javascript
运行
复制
static function EnsureDirectoryExists($dirname) {
    $dirname = str_replace('/', DIRECTORY_SEPARATOR, $dirname);  //added for godaddy
    $directory_elements = explode(DIRECTORY_SEPARATOR, $dirname);
    $startoffset = 5;  //added for godaddy

    /*  comment for godaddy
    $startoffset = (!$directory_elements[0] ? 2 : 1);  // unix with leading "/" then start with 2nd element; Windows with leading "c:\" then start with 1st element
    $open_basedirs = preg_split('#[;:]#', ini_get('open_basedir'));
    foreach ($open_basedirs as $key => $open_basedir) {
        if (preg_match('#^'.preg_quote($open_basedir).'#', $dirname) && (strlen($dirname) > strlen($open_basedir))) {
            $startoffset = count(explode(DIRECTORY_SEPARATOR, $open_basedir));
            break;
        }
    }
    */
    $i = $startoffset;
    .....

在phpthumb.class.php //它是必需的,如果没有它,源就出错了

代码语言:javascript
运行
复制
function ResolveFilenameToAbsolute($filename) {
    ....
    if ($this->iswindows) {
        //$AbsoluteFilename = preg_replace('#^'.preg_quote(realpath($this->config_document_root)).'#i', realpath($this->config_document_root), $AbsoluteFilename);
        $AbsoluteFilename = str_replace(DIRECTORY_SEPARATOR, '/', $AbsoluteFilename);
    .....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11376653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档