このサイトを検索しましたが、答えが見つからないようです。10 秒のオーディオ サンプルをアップロードし、アップロードされたファイルを BBCode と Flash Player の両方として (同じページに) 表示するための単純な AjaxUpload スクリプトがあります。はuploadSample.php
、ファイル名のスペースをアンダースコアに置き換えることで処理しますが、生成されたコードでは<input type="text"/>
、PHP スクリプトがスペースを削除したにもかかわらず、ファイル名にスペースが含まれているため、BBCode が間違っており、flashplayer がファイルを見つけることができません。
PHPスクリプトがスペースを削除する前に、スクリプトは明らかに元のファイル名を取得しています。アップロード後に、アンダースコアを含む適切なファイル名を取得する方法はありますか?
jQuery
$(function() {
var url = "uploads/samples/";
var btnUpload = jQuery('#up');
var status = jQuery('#status');
new AjaxUpload(btnUpload, {
action: 'uploadSample.php',
name: 'uploadfile',
onSubmit: function(file, ext) {
status.html('<img src="public/upload/ajax-loader.gif">');
},
onComplete: function(file, response) {
if (response === "success") {
$("#status").fadeOut();
$("#bb").val('[sample=' + url + file + ']');
$("#flash").html("<embed width='400' height='27' quality='best' src='public/upload/player.swf' flashvars='audioUrl=" + url + file + "' type='application/x-shockwave-flash'>");
} else {
// run error code
}
}
});
});
フィドル (必要な場合): http://jsfiddle.net/Nn5gG/1/