以编程方式将文件上载到用户

时间:2016-02-09 作者:Fadi

我正在使用pods插件向用户添加新的自定义字段,因此我添加了4个文件自定义字段,然后尝试从注册页面将文件上载到此字段并创建新用户,但当我上载文件时,它没有生成所有图像大小,当从管理面板打开新用户时,图像没有显示,但名称是,并且创建了图像帖子,请提供任何帮助

我的代码

 $uploadfiles = upload_files();

                $metas = array(
                    \'uploadfiles1\' => $uploadfiles[0][\'attach_id\'],
                    \'uploadfiles2\' => $uploadfiles[1][\'attach_id\'],
                    \'uploadfiles3\' => $uploadfiles[2][\'attach_id\'],
                    \'uploadfiles4\' => $uploadfiles[3][\'attach_id\'],

                );

                foreach ($metas as $key => $value) {
                    update_user_meta($user_id, $key, $value);
                }
upload\\u files功能:

    function upload_files()
{
    $files_uploaded = array();
    $files = $_FILES;
    $files_extensions = ["image/png", "image/jpeg", "image/bmp", "image/jpg", "application/pdf"];

    $is_files_checked = check_upload_files($files, $files_extensions, 5);

    if ($is_files_checked) {

        foreach ($files as $key => $file) {

            $file_name = get_file_name($key);
            $upload_file_name = ($_POST[\'registration_fname\'] . \'_\' . (!empty($_POST[\'registration_mname\']) ? $_POST[\'registration_mname\'] . \'_\' : \'\') . $_POST[\'registration_lname\'] . \'_\' . $file_name . \'_\' . time() . get_file_extension($file[\'type\']));
            $upload_dir = wp_upload_dir();

            if (move_uploaded_file($file["tmp_name"], $upload_dir[\'path\'] . "/" . $upload_file_name)) {
                //registration_FrontDriverLicense || registration_BackDriverLicense
                //registration_FrontEmirateID || registration_BackEmirateID
                //Passport || Visa_Stamp
                $uploaded_file[\'file_name\'] = $file_name;
                $uploaded_file[\'upload_url\'] = $upload_dir[\'url\'] . "/" . $upload_file_name;

                $attachment = array(
                    \'guid\'           => $uploaded_file[\'upload_url\'],
                    \'post_mime_type\' => $file[\'type\'],
                    \'post_title\'     => $upload_file_name,
                    \'post_content\'   => \'\',
                    \'post_status\'    => \'inherit\'
                );

                $uploaded_file[\'attach_id\'] = wp_insert_attachment( $attachment , $upload_dir[\'path\']);
                require_once( ABSPATH . \'wp-admin/includes/image.php\' );

                 //Generate the metadata for the attachment, and update the database record.
                $attach_data = wp_generate_attachment_metadata( $uploaded_file[\'attach_id\'] , $upload_dir[\'path\']);
                wp_update_attachment_metadata( $uploaded_file[\'attach_id\'], $attach_data);

                $files_uploaded[] = $uploaded_file;
            }
        }
        return $files_uploaded;
    } else {
        //$is_files_checked files error....
        return $is_files_checked;
    }
}

1 个回复
SO网友:Fadi

只是不见了$upload_dir[\'path\'] . "/" . $upload_file_name 在里面

            $uploaded_file[\'attach_id\'] = wp_insert_attachment($attachment, $upload_dir[\'path\'] . "/" . $upload_file_name);
            require_once(ABSPATH . \'wp-admin/includes/image.php\');

            //Generate the metadata for the attachment, and update the database record.
            $attach_data = wp_generate_attachment_metadata($uploaded_file[\'attach_id\'], $upload_dir[\'path\'] . "/" . $upload_file_name);

相关推荐

如何从/wp-json/wp/v2/USERS/Me获取数据

我试图在wordpress中使用JWT auth获取用户数据。我被发送给/wp-json/wp/v2/users/me的邮递员get请求中包含了我从/wp-json/jwt-auth/v1/token获得的令牌。但我有一个错误:{ "code": "rest_not_logged_in", "message": "you are not logged in", "dat