WordPressでajaxで画像を取得して、uploadsディレクトリ内に保存したファイルをwp_check_filetypeで拡張子を取得すると、falseが返ってきます。
uploadsフォルダを確認すると、画像と各種サムネイルが生成されているので、画像自体には問題なさそうなのですが。
環境
・さくらのVPS VirtualHostを使用
・wordpress: 4.4.1
・テーマ: Twenty Fifteen
何かご存知の方いらっしゃいませんでしょうか?
コード $filename = basename($file_uri); $wp_upload_dir = wp_upload_dir(); $path = $wp_upload_dir['url'].'/'.$filename; require_once(ABSPATH . 'wp-admin/includes/file.php'); if ( WP_Filesystem() ) { global $wp_filesystem; $img_data = $wp_filesystem->get_contents( $file_uri ); } if ( WP_Filesystem() ) { global $wp_filesystem; $wp_filesystem->put_contents( $wp_upload_dir['path'] . '/' . $filename, $img_data); } // 拡張子の取得 ここでfalseになる $wp_filetype = wp_check_filetype( $filename ); $attachment = array( 'guid' => $wp_upload_dir['baseurl'] . '/' . $filename, 'post_mime_type' => $wp_filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', $filename), // exclude ext 'post_content' => '', 'post_status' => 'inherit' ); // メディアライブラリへのアップロード $attach_id = wp_insert_attachment( $attachment, $path, $parent_post_id ); require_once( ABSPATH . 'wp-admin/includes/image.php'); // DB更新 $file = wp_generate_attachment_metadata( $attach_id, $wp_upload_dir['path'].'/'.$filename ); wp_update_attachment_metadata( $attach_id, $file ); $attach_src = wp_get_attachment_url( $attach_id );
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。