web-dev-qa-db-ja.com

Media-upload.phpを使ってカスタムフィールドでmp3をアップデートする

Thickboxファイルアップロードダイアログをカスタムフィールドで使用して、ユーザーがmp3をアップロードできるようにしています。私がやりたいことはアップロードされたmp3のURLをつかみそしてpostmetaとしてそれを保存することです(私がそれを得たときデータを保存することは問題ではありませんが、必要なものを手に入れることです!)。

これを画像で機能させるためのコードがあります。

 jQuery(function($){

var formfield = null;

$('#rps_upload_mp3').click(function() {
    $('html').addClass('Image');
    formfield = $('#rps_mp3_url').attr('name');
    tb_show('', 'media-upload.php?type=image&TB_iframe=true');
    return false;
});

window.original_send_to_editor = window.send_to_editor;
window.send_to_editor = function(html) {

    var fileurl;

    if( formfield = !null ) {

        fileurl = $('img', html).attr('src');
        $('#rps_mp3_url').val(fileurl);
        tb_remove();

        $('html').removeClass('Image');
        formfield = null;

    } else {

        window.original_send_to_editor(html);

    }

}

 });

明らかにfileurl = $('img', html).attr('src');という行はmp3ではなく画像のsrcのみを取得しますが、スクリプトがどこからこの画像のソースを取得しているのかわからず、アップロードされたmp3をターゲットにする方法がわかりません。

前もって感謝します!

4
Richard Sweeney

ファイルは次のようになります。

fileurl = $('a', html).attr('href');

それはかなり簡単な修正です。これを検証します。

if(/\.mp3\b/.test(fileurl)){
    //Do something awesome
}else{
    alert('The file you selected is not an MP3.');
}

乾杯!

1
Brian Fegter

画像タグを含むアンカーとして返される画像とは対照的に、ファイルのURLは単一のアンカータグとして返されます。

そのため、wordpressファイルアップローダでファイルのURLを参照するには、次のようにします。

$(html).attr('href');

その後、 Brian Fegterの応答 を使用してファイルの種類を確認できます。

0
Jake