1

Drupal 7 を使用しており、ファイル アップロード フィールドを持つフォームを作成するカスタム モジュールがあります。

$form['resume_file'] = array(
  '#type' => 'file',
  '#title' => t('Resume Upload'),      
);

ファイル拡張子が doc、docx、pdf、txt、rtf のいずれかであり、ファイル サイズが 2 MB を超えないようにする必要があります。

ドキュメントでこれを達成するための明確な方法が見つかりません。これを使用すると言っている場所を見ました:

$form['resume_file'] = array(
  '#type' => 'file',
  '#title' => t('Resume Upload'),
  '#upload_validators'  => array("file_validate_extensions" => array("doc docx pdf txt rtf")),
);

しかし、間違ったファイルタイプをブロックしてエラーメッセージを表示する限り、それは何もしませんでした. hook_form_validate() 関数に何か余分なものを入れるなど、何か他のことをする必要がありますか?

私もこれを見ました:

$form['resume_file'] = array(
  '#type' => 'file',
  '#title' => t('Resume Upload'),
);

$form['resume_file']['#upload_validators']['file_validate_extensions'][0] = 'doc docx pdf txt rtf'; 

これも何もしませんでした。ファイルのサイズと拡張子を検証するにはどうすればよいですか?

4

3 に答える 3

3

拡張子とサイズの検証を使用した druapl 7 のフォーム API のファイル アップロード コントロール

'resume'=>array(
  '#type'   => "managed_file",
  '#title'  => t("Upload Resume in Word Format"),
  '#descripion' => t("Only doc or docx format Files are allowed."),
  '#upload_location'    => "public://resume/",
  "#upload_validators"  => array("file_validate_extensions" => array("doc docx")),
  '#required'=>TRUE,

),
于 2014-02-05T07:08:15.017 に答える
1

これ#upload_validatorsは、管理されたファイル フォーム要素の非標準フォーム要素プロパティの一部です。

$element = array(
  '#type' => 'managed_file',
  '#title' => t('Resume Upload'),
  '#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
);

マネージド ファイル要素タイプの詳細については、Drupal フォーム API リファレンスを参照してください。

于 2013-11-29T15:42:05.730 に答える