我正在尝试基于自定义表单提交创建节点。除了上传的图片之外,一切都很好。以编程方式上传和保存文件到Drupal节点
我可以捕获它们并将它们设置在表单对象缓存中。当我将数据传入创建节点的函数时,出现此错误:
“指定的文件无法复制,因为没有该名称的文件存在,请检查您是否提供了正确的文件名。
尽管每次只提交一个或两个图像,但我也会多次收到错误。
这是我使用的代码。 $上传的传入,是在前面的步骤从file_save_upload()返回的文件对象的数组:
if (isset($uploads)) {
foreach ($uploads as $upload) {
if (isset($upload)) {
$file = new stdClass;
$file->uid = 1;
$file->uri = $upload->filepath;
$file->filemime = file_get_mimetype($upload->uri);
$file->status = 1;
$file = file_copy($file, 'public://images');
$node->field_image[$node->language][] = (array) $file;
}
}
}
node_save($node);
我也试过这样:
if (isset($uploads)) {
foreach ($uploads as $upload) {
$upload->status = 1;
file_save($upload);
$node->field_image[$node->language][] = (array) $upload;
}
}
}
node_save($node);
第二个导致重复键错误在MySQL在URI字段。我在教程中看到了这两个例子,但都没有工作?
我用'$节点 - > field_image [$节点 - >语言] [0]',看** 0 ** –
但有是多个图像,所以[]是我想要的不是一个静态值 – Kevin
正确 - 抱歉从未使用过多个图像.. –