我使用D7託管文件。drupal 7在form_state中託管數據與managed_file
如果我的表單錯誤比表單丟失的文件信息,我知道有錯誤必須重新上傳文件。
但在形式驗證我有文件保存在DB中,所以我有該文件的FID(從file_load)
如果我能presist在形式狀態值i可以從分貝加載文件形式提交併保留。
在形式:
$form['fileUpload'] = array(
'#id' => 'fileUploadId',
//'#type' => 'file',
'#title' => t('upload a file: '),
'#size' => 22,
'#type' => 'managed_file',
'#description' => t('upload file: docx doc pdf'),
'#upload_location' => 'public://',
'#upload_validators' => array(
'file_validate_extensions' => array('docx doc pdf'),
// Pass the maximum file size in bytes
'file_validate_size' => array(4*1024*1024),
),
);
我嘗試:
我通過&通過形式驗證參考$ form_state,提交,和形式
$ form_state [ '值' ] ['FileInfo'] = $ form_state ['values'] ['fileUpload'];
如果形狀誤差form_state失去了這個值
我通過在形式驗證的& $ form_state參考,提交和形式
$文件= file_load($ form_state [ '值'] [ '文件上傳']);
$ form_state ['values'] ['FileInfo'] = $ form-> fid;
form_set_value($元,$值,& $ form_state)的持續form_state數據
但它是有點棘手使用。