首页 文章

使用Image_moo使用PHP上传文件

提问于
浏览
-1

我有一个函数,假设从 POST 请求获取图像文件 . 我正在使用image_moo作为外部库来保存之前调整图像大小 .

Here's my function

$dest = $_SERVER['DOCUMENT_ROOT'] . '/refundstylesheet/uploads/images/' . $_FILES['upfile']['name'];
$temp_file = $_FILES['upfile']['tmp_name'];

$this->image_moo->load($temp_file)->resize(350,350)->save($dest, TRUE);

我没有收到任何错误消息,它只是不保存服务器上的图像 .

echo $ dest:** /var/www/html/refundstylesheet/uploads/images/image.png
echo $ temp_file:** / tmp / phpFIQp6S

在完成此功能之前,我使用上传的文件完成了所有必要的verifications .

4 回答

  • 0

    错别字:

    $temp_file = $_FILES['upfile']['temp_name'];
                                      ^^^^
    

    应该 tmp_name . 试图通过从一个单词中删除一个元音来试图拯救宇宙的一些明亮的火花,但忽略了在另一个单词中这样做 .

    另外,除非你没有简单地假设上传成功 . 你需要做的第一件事就是检查 ['error'] 参数 .

  • 1

    必须有一个错误

    注意:使用未定义的常量dest

    也许codeigniter处理这种不同

    你应该替换这个:

    $this->image_moo->load($temp_file)->resize(350,350)->save(dest, TRUE);
    

    接着就,随即:

    $this->image_moo->load($temp_file)->resize(350,350)->save($dest, TRUE);
    

    您已经定义了一个变量 $dest 但是您尝试使用未定义的constant dest

  • 0

    您在代码中有许多错误 .

    • 它应该是 $_FILES['upfile']['tmp_name'] (不是'temp'但'tmp')

    • ->save(dest, TRUE) 应为 ->save($dest, TRUE)

    另外:如果您想获取错误消息,请将其放在PHP文件的顶部:

    ini_set('display_errors', 'on');
    error_reporting(E_ALL);
    
  • 0

    我解决了安装php-gd扩展的问题 . 罗尼的评论帮助了我 . 由于 image_moo 库进行了一些图像编辑,因此它需要 dependency . 您只需执行命令bellow (linux) 即可安装此依赖项:

    apt-get install php5-gd
    

    检查是否使用phpinfo()安装并重新启动apache .

相关问题