【发布时间】:2011-09-13 20:11:04
【问题描述】:
我正在尝试基于自定义表单提交创建一个节点。除了上传的图片外,一切都很好。
我可以很好地捕获它们并将它们设置在表单对象缓存中。当我将数据传递给函数来创建节点时,我得到了这个错误:
“无法复制指定的文件,因为该名称的文件不存在。请检查您提供的文件名是否正确。”
我也多次收到该错误,尽管一次只提交一两张图片。
这是我正在使用的代码。 $uploads 被传入,是上一步从 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 字段出现重复键错误。我在教程中看到了这两个示例,但都没有工作?
【问题讨论】:
-
我用过
$node->field_image[$node->language][0],看0 -
但是有多个图像,所以 [] 是我想要的不是静态值
-
正确 - 抱歉从未使用过多张图片..
-
可能是数组混淆 - 尝试明确设置键..