Drupal 7,hook_file_presave 显示错误信息并停止上传文件
Drupal 7, hook_file_presave display error message and stop uploading file
我是 drupal 7 的新手,我正在尝试创建 hook_file_presave / hook_file_validate / hook_field_validate 函数,检查上传到站点的 pdf 文件是否不受密码保护.
我可以使用 php 轻松检查文件是否受密码保护。但是当我显示错误消息时,它只显示错误消息还上传文件。我想我没有使用右钩拳。
function simpletest_file_presave($destination){
// here is my logic
drupal_set_message(t('file is encrypted >>>>>>>> '. $filename), 'error');
return;
}
Here you can see file shouldn't be uploaded buit its there with remove button.
接触Drupal已经有一段时间了,但我首先想到的是hook_file_validate()。
但作为 explained here,您可以实施 hook_form_FORM_ID_alter()
以添加您自己的文件上传验证器,然后 return 要显示的错误数组。
重要提示:当您使用 t()
函数翻译您的消息时,不要将文件名附加到您的字符串,因为这将创建多个翻译字符串,一个用于每个上传的文件,因此它永远不会被翻译,因为它总是会有所不同。为避免这种情况,请使用占位符并将文件名作为字符串参数传递,如下所示:
$error_message = t(
'The file "@filename" is encrypted! Please upload a PDF without password protection.',
['@filename' => $filename_without_path]
);
见API documentation for the t() and format_string() functions
我是 drupal 7 的新手,我正在尝试创建 hook_file_presave / hook_file_validate / hook_field_validate 函数,检查上传到站点的 pdf 文件是否不受密码保护.
我可以使用 php 轻松检查文件是否受密码保护。但是当我显示错误消息时,它只显示错误消息还上传文件。我想我没有使用右钩拳。
function simpletest_file_presave($destination){
// here is my logic
drupal_set_message(t('file is encrypted >>>>>>>> '. $filename), 'error');
return;
}
Here you can see file shouldn't be uploaded buit its there with remove button.
接触Drupal已经有一段时间了,但我首先想到的是hook_file_validate()。
但作为 explained here,您可以实施 hook_form_FORM_ID_alter()
以添加您自己的文件上传验证器,然后 return 要显示的错误数组。
重要提示:当您使用 t()
函数翻译您的消息时,不要将文件名附加到您的字符串,因为这将创建多个翻译字符串,一个用于每个上传的文件,因此它永远不会被翻译,因为它总是会有所不同。为避免这种情况,请使用占位符并将文件名作为字符串参数传递,如下所示:
$error_message = t(
'The file "@filename" is encrypted! Please upload a PDF without password protection.',
['@filename' => $filename_without_path]
);
见API documentation for the t() and format_string() functions