Drupal 7无法打开流:image_gd_save()中的权限被拒绝

时间:2015-07-08 23:53:29

标签: php drupal drupal-7 drupal-modules

我正在尝试为缩略图生成和缩放图像,缩放图像没有问题,并且在使用时

image_save($_image) // Works Fine

(使用相同的文件夹替换)此代码没有问题,当我尝试使用目标参数将图像保存到另一个目标文件夹时,问题就出现了:

image_save($_image, $destination) //throws errors

然后发生错误:

  

警告:imagejpeg(C:\ xampp \ htdocs \ drupal-devel \ sites \ default \ files):无法打开流:image_gd_save()中的权限被拒绝(C:\ xampp \ htdocs \ drupal-devel的第284行) \模块\ SYSTEM \ image.gd.inc)。

我正在使用PHP xampp并使用PHP的is_write函数,返回true,没有权限问题。

我曾经尝试过一段时间而且我不知道发生了什么,没有权限问题。

这是我的代码:

$destination = 'public://gallery/thumbs/';
$filepath = drupal_get_path('module', 'gallery_blueprint') . '/img/large/1.jpg'

// Someplace before function
file_prepare_directory($destination, FILE_CREATE_DIRECTORY);
_generate_thumb($filepath,$destionation,300,NULL);

// Function code
function _generate_thumb($filepath, $destination_path, $width = NULL, $height = NULL) {
  $_img = image_load($filepath);
  $scaled = image_scale($_img, $width, $height); // Return true

  $result = image_save($_img, $destination_path); //Error occurs whit destination path

  return $result;
}

1 个答案:

答案 0 :(得分:0)

这是一个愚蠢的答案,但会写出来。

函数image_save()当你传递$ destination文件夹时,它默认不写名字,最后你需要写一个最终的绝对名字路径,文件名是必需的还是抛出的。 / p>

Warning: imagejpeg(C:\xampp\htdocs\drupal-devel\sites\default\files): failed to open stream: Permission denied in image_gd_save() (line 284 of C:\xampp\htdocs\drupal-devel\modules\system\image.gd.inc).

//finally you need to write whole filepath
image_save($_img, $finalname_path) //$filname_path = public://gallery/thumbs/1.jpg