フィールドが 1 つしかないフォームを取得しました。このフィールドのタイプは「managed_field」です。[アップロード] ボタンをクリックすると、プログレス バーにファイルのアップロードの進行状況が表示されます。その後、フォームを送信してファイルを保存する必要があります。
ファイルを選択して [アップロード] ボタンの代わりにフォーム送信ボタンをクリックすると、プログレス バーが表示されないためです。アップロード ([アップロード] ボタンを使用) が完了した後に、フォームの送信をトリガーしたいと考えています。
私の現在のフォームは次のようになります。
$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['pdf_upload'] = array(
'#title' => t('Upload PDF'),
'#type' => 'managed_file',
'#required' => TRUE,
'#progress_message' => t('Please wait...'),
'#progress_indicator' => 'bar',
'#upload_validators' => array(
'file_validate_extensions' => array('pdf'),
)
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
file モジュールは、file/ajax/* uri への ajax コールバックを介してファイルを処理します。コールバックは ajax コマンドを返します。
基本的に、ファイルのアップロードが完了した後にフォームの送信をトリガーする ajax コマンドを追加したいと考えています。