使用media-pload.php通过自定义字段上传mp3

时间:2011-06-20 作者:Richard Sweeney

我正在尝试使用带有自定义字段的Thickbox文件上传对话框来允许用户上传mp3。我想做的是抓取上传的mp3的URL并将其保存为Posteta(在我有数据时保存数据不是问题,但获取我需要的数据是!)。

我有代码可以让它在图像上工作

 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\'); 只会得到src 一张图片,不是mp3,但我不知道脚本从哪里获取这张图片的来源,我也不知道如何定位上传的mp3。

提前感谢!

2 个回复
SO网友:Brian Fegter

fileurl应如下所示:

fileurl = $(\'a\', html).attr(\'href\');
这是一个非常简单的修复方法。我会对此进行一些验证:

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

SO网友:Jake

文件URL作为单个锚定标记返回,而图像作为包含图像标记的锚定返回。

因此,要在wordpress file uploader中引用文件url,请使用:

$(html).attr(\'href\');
然后您可以使用Brian Fegter\'s response 检查文件类型。

结束