12

インターネットで 30 分間検索しましたが、見つかりません。

D7 で managed_file フォーム API を使用して、アップロード イメージ ファイルを使用できるようにしたいと考えています。より具体的には、「#upload_validators」プロパティがトリックを行う可能性があると思います(可能であれば、アップロード前にファイル拡張子を検証するか、少なくとも検証フェーズで検証しますが、送信機能では検証しません)。サンプル モジュールの image_example と file_example を確認しましたが、適切な使用法が見つかりません。

だから、managed_file に関する適切なチュートリアルがあるのだろうか? どうもありがとう。

更新: file.field.inc から drupal ディレクトリを検索した後に例を見て、例に従って、次のようなコードを書きました。

$form['file_upload'] = array(
  '#type'   => "managed_file",
  '#title'  => t("Upload"),
  '#descripion' => t("Only Image Files are allowed."),
  '#progress_indicator' => "bar",
  '#upload_location'    => "public://img/dish",
  "#upload_validators"  => array("file_validate_extensions" => "png gif jpg"),
);

これで問題は解決しました。

4

1 に答える 1

11

https://drupal.stackexchange.com/a/5630/1103から取得したmanaged_fileものを含む使用中のフィールドの例を次に示します。#upload_validators

$form['picture']['file'] = array(
  '#type' => 'managed_file',
  '#title' => t('picture'),
  '#description' => t('Allowed extensions: gif png jpg jpeg'),
  '#default_value' => (isset($foo->picture->fid) ? $foo->picture->fid : ''),
  '#upload_location' => variable_get('picture_upload_location'),
  '#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    // Pass the maximum file size in bytes
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
);
于 2012-07-17T03:01:19.647 に答える