我正在开发自定义Wordpress会员网站。我已经为用户创建了用于注册和登录的插件,但我仍然坚持用户上传个人资料图像的选项。
这是我上传图像的表单,还有一些其他输入:
<p class="form-row">
<input type="file" name="wp_custom_attachment"id="wp_custom_attachment" size="50" />
</p>
现在在我的脚本上,我有一个公共函数,它将从输入中获取数据。我使用wp_upload_bits函数:
$upload = wp_upload_bits($_FILES['wp_custom_attachment']['name'], null, @file_get_contents($_FILES['wp_custom_attachment']['tmp_name']));
是否还有其他需要添加的内容,以使其发挥作用?
只有当您的<表单>元素具有正确的编码集并使用POST:
<form enctype="multipart/form-data" action="upload.php" method="POST">
PHP的默认文件上传最大限制为2MB
您还可能遇到服务器端文件大小限制。编辑php.ini:
; Maximum allowed size for uploaded files.
upload_max_filesize = 64M
; Must be greater than or equal to upload_max_filesize
post_max_size = 64M
如果您使用的是ApacheWeb服务器,您可以在与脚本相同的目录中创建一个名为.htaccess的文件:
php_value upload_max_filesize 64M
php_value post_max_size 64M
您也可以将其放在处理上传的PHP文件中:
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
您需要在对象的名称和ID之间添加一个空格,否则在使用Chrome、Safari或Firefox以外的任何浏览器时,上传都将无法正常工作:(文件上传需要name
属性)
<input type="file" name="wp_custom_attachment"id="wp_custom_attachment" size="50" />
更改为:
<input type="file" name="wp_custom_attachment" id="wp_custom_attachment" size="50" />