私がしたいカスタムモジュールを開発しています:
- フォームから画像をアップロードします。
- 画像をデフォルトのフォルダから目的のフォルダに移動します。
- 最後に、同じフォームの下 (送信ボタンの下) に画像を表示します。
hook_menu と hook_form を実装することで最初の目標を達成しましたが、過去 3 日間、残りの 2 つの目標で非常に行き詰まっています。アップロードした画像をデフォルト フォルダから移動しようとすると、「場所が無効です」というエラー メッセージが表示されます。ユーザーが画像を選択してフォームを送信すると、送信ボタンの下の同じページに画像が表示されます。どんな助けでも本当にありがたいです。これが私のコードです:-
function create_ad_form($form, &$form_submit)
{
...
$form['image_file'] = array(
'#title' => t('Upload Banner:'),
'#type' => 'file'
);
$form['#attributes']['enctype'] = 'multipart/form-data';
...
}
function create_ad_form_submit($form, &$form_state)
{
$module=drupal_get_path('module', 'create_ad');
$validators = array();
$file = file_save_upload('image_file', $validators,"public://",FILE_EXISTS_RENAME);
if ($file)
{
$file->status=FILE_STATUS_PERMANENT;
file_save($file);
$result = file_unmanaged_copy($file, $module, FILE_EXISTS_RENAME);
if ($result == 1)
{
}
else
{
drupal_set_message('Couldn\'t copy file: '.$file->name);
}
}
else
{
form_set_error('create_ad', t("Failed to save the file."));
}
}