カスタム フォームの送信に基づいてノードを作成しようとしています。アップロードされる画像を除いて、すべてがうまく機能します。
それらをうまくキャプチャして、フォーム オブジェクト キャッシュに設定できます。データを関数に渡してノードを作成すると、次のエラーが発生します。
「その名前のファイルが存在しないため、指定されたファイルをコピーできませんでした。正しいファイル名を指定したことを確認してください。」
一度に 1 つまたは 2 つの画像しか送信しないのに、エラーが何度も表示されます。
これが私が使用しているコードです。$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);
2 つ目は、URI フィールドで MySQL の重複キー エラーを引き起こします。これらの例はどちらもチュートリアルで見ましたが、どちらも機能していませんか?