0

私がしたいカスタムモジュールを開発しています:

  1. フォームから画像をアップロードします。
  2. 画像をデフォルトのフォルダから目的のフォルダに移動します。
  3. 最後に、同じフォームの下 (送信ボタンの下) に画像を表示します。

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."));
  }
}
4

1 に答える 1

0

なんとか画像を表示できましたが、画像をどのフォルダにも移動できないため、デフォルトの「public://」ディレクトリに配置しました。ajax なしで同じページに画像を表示する方法については、Drupal 7 FAPI -検証または送信ハンドラーにフォーム要素を追加し、 ここで ajax を使用して説明しています: Drupal 7 FAPI - ajax 画像プレビュー

于 2012-10-30T06:25:14.880 に答える