php - wordpress 用户配置文件中的自定义上传字段

标签 php wordpress file-upload

我试图让用户在他们的用户个人资料编辑页面上上传个人资料图片,这是上传表单的代码:

function add_extra_profile_fields($user) {
    $output = '<h3>صورة المستخدم</h3>

    <table class="form-table">

        <tr>
            <th><label for="twitter">صورة المستخدم</label></th>

            <td>
                <img class="video_author_img" src="'.ms_user_img_single_php($user->ID, false).'" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <input type="file" id="admin_user_photo" name="admin_user_photo" class="form-text" /><br />
                <span class="description">لأفضل نتيجة يرجى استخدام صورة 90px في 90px  - الحجم الأقصى 2 ميجا</span>
            </td>
        </tr>

    </table>';

    echo $output;
}
add_action('edit_user_profile', 'add_extra_profile_fields');
add_action('show_user_profile', 'add_extra_profile_fields');

下一个函数应该是保存上传的图像并处理裁剪并将其放置在另一个函数中:

function my_save_extra_profile_fields( $user_id ) {

    if ( !current_user_can( 'edit_user', $user_id ) )
        return false;

    // User image upload
    $allowedTypes = array('image/gif', 'image/jpeg', 'image/png');

    if (in_array($_FILES["admin_user_photo"]["type"], $allowedTypes) && ($_FILES["admin_user_photo"]["size"] < 1048576)){

        ms_upload_crop_image('admin_user_photo', $user_id, '../../uploads/user_images/', 90, 90);

    }
}
add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

我还用 jquery 更改了表单的 enctype:

$('form#your-profile').attr('enctype', 'multipart/form-data');

问题是浏览器甚至不上传图片,就好像该字段不存在一样,知道问题出在哪里吗?

最佳答案

您应该更改个人资料表单中的两个参数,而不是一个。可能会有帮助:

  form.encoding = "multipart/form-data";
  form.setAttribute('enctype', 'multipart/form-data');

我建议你为此使用现成的插件,称为添加本地头像(http://wordpress.org/extend/plugins/add-local-avatar/)或者如果你坚持使用自己的代码,那么只需下载插件并研究它的简单源代码。比较它们并找出你的错误。

关于php - wordpress 用户配置文件中的自定义上传字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413542/

相关文章:

javascript - 如何在一个页面中处理多个表单

wordpress - 将自定义 HTML CSS Javascript 代码添加到某些 wordpress 帖子的正确方法是什么

css - 如何向我的 wordpress 添加新的样式表

jsf - Primefaces 上传,如何在提前模式下只允许一个上传

php - 从多个表检索 mysql 数据到一个 php 页面

php - CSS 文件未在我的 CodeIgniter PHP 中加载

php - Laravel 和 Blade 的 undefined variable

html - wordpress woocommerce 图像大小 - 容器边距和大小

javascript - 使用 NodeJS 和 node-formidable 上传文件

html - golang http处理大文件上传