在WP中保存选项时,是否有方法上载文件?我有这个选项设置(save绑定到options.php),需要在服务器上上传和存储一个文件
并且在update\\u option{option\\u name}中找不到文件:
add_action(\'init\', array($this,\'upload_credentials\'), 10);
function upload_credentials( ) {
//CRM_adv_settings is the option name
add_filter( \'pre_update_option_CRM_adv_settings\', array($this,\'system_save_file\'), 10, 2 );
}
function system_save_file($new_value, $old_value){
//$rawData = file_get_contents("php://input");
$f=$_FILES;
$p=$_POST;
}
找不到$\\u文件,在$\\u POST中有文件名;尝试了关于
update_option
和
pre_update_option
但没有成功,有什么想法吗?
最合适的回答,由SO网友:Sally CJ 整理而成
我很确定问题是not 使用WordPress挂钩。取而代之的是:
找不到$_FILES
, 在里面$_POST
, 这是文件名
。。很可能是因为您的表单标签(<form>
) 没有所需的enctype
attribute 必须设置为multipart/form-data
要使文件上载输入生效,需要将文件上载到服务器,而无需设置enctype
到multipart/form-data
, 输入仍然有效(即,您可以选择要上载的文件),但它的工作方式与标准输入字段类似,浏览器只提交文件名(例如。my-image.png
) 而不是实际的文件本身(PHP在$_FILES
).
因此,请确保表单标记具有该属性enctype="multipart/form-data"
:
<form method="post" action="options.php" enctype="multipart/form-data">
...
</form>