无法在drupal 7中添加图像字段

时间:2012-01-30 04:11:28

标签: php image drupal

我是drupal的新手,现在我需要以编程方式创建节点。

我能够创建一个简单的节点。但如果我将它与图像字段合并,它总是失败。

$file_path = drupal_realpath('tmp/test_image.jpg');
$file = (object) array(
    'uid' => 1,
    'uri' => $file_path,
    'filemime' => file_get_mimetype($file_path),
    'status' => 1,
);
$copy = file_copy($file, 'public://sites/default/files/field/image/testing/', FILE_EXISTS_RENAME);
$node->field_image[LANGUAGE_NONE][0] = (array) $copy;

它总是给我一个错误:(

The specified file could not be copied, because the destination directory is not properly configured. This may be caused by a problem with file or directory permissions. More information is available in the system log.

3 个答案:

答案 0 :(得分:0)

我认为如果您告诉file_copy()存储在“public:”中,则不应指定完整路径名。至少,在我看过的例子中,目标看起来更像'public:filename.ext'

如上面的评论所示,请检查您的日志以确定。除了Web服务器的错误日志之外,请查看Drupal是否在其“报告”部分中注明了任何进一步的详细信息。

答案 1 :(得分:0)

以pupupal方式

'public://' = 'sites/default/files'(或指定为默认文件夹的任何其他文件夹)。

您的代码:

$copy = file_copy($file, 'public://field/image/testing');

P.S。默认情况下FILE_EXISTS_RENAME是默认的,因此无需定义它。

答案 2 :(得分:0)

感谢您的投入。我尝试将公共路径'sites / default / files'设置为'testing'或任何其他文件夹并设置为644.

有效。 :(

这是我的更新代码。

$file_path = drupal_realpath('test_image.jpg');
$file = (object) array(
    'uid' => 1,
    'uri' => $file_path,
    'filemime' => file_get_mimetype($file_path),
    'status' => 1,
);
$copy = file_copy($file, 'public://', FILE_EXISTS_RENAME);

我不确定我需要在网站及其子文件夹中设置的其他权限。