我在想,如果我能得到什麼,最好的辦法做到以下幾點將是...的Javascript調用閃存功能上傳文件
我目前從JavaScript調用一個Flash AS3函數(使用jQuery SOM建議)這個函數上傳一個已經在這個Flash文件中被選中的文件。 Flash然後上傳文件並調用處理處理文件的php文件(upload.php)。這一切工作正常。然而,還有其他與上傳文件有關的詳細信息(由用戶在文本框中輸入)。所有這些數據(包括上傳文件的路徑)都必須保存到數據庫中。這可以通過調用另一個php文件(processData.php)的ajax來完成。我的問題是,當我上傳文件時,我無法通過Flash發送其他詳細信息(至少不是我知道的),從而導致執行2個不同的PHP腳本。其次,通過ajax調用的另一個php腳本沒有文件信息添加到數據庫。如果我想要的話,我可以將這些信息存儲在會話中,但它似乎並不能說服我作爲解決此問題的最佳方式。任何其他想法或建議?
我有很多代碼可以避免讓這個問題變得非常棘手JS後面的部分我認爲很重要,一些Flash片段讓你可以瞭解發生了什麼...如果的theres anyhting否則你幾乎看到代碼的隨意問及生病後它...
JS:
$("#uploadAudio").submit(function(event) {
event.preventDefault();
var form = $(this);
var title = form.find("#title").val();
var desc = form.find("#desc").val();
var flash = $("#flash");
var flashFileSet = flash.get(0).jsIsFileSelected();
if(flashFileSet)
{
$.ajax({
type: "POST",
url: "processData.php",
dataType: "text",
data: "title=" + title + "&desc=" + desc,
async: false,
success: function() {
audFile.get(0).jsUploadFile();
}
});
}
});
閃存
public function fUploader(){
req = new URLRequest();
req.url = (stage.loaderInfo.parameters.f)? stage.loaderInfo.parameters.f : 'http://virtualmanagementonline.com/ajax/audUpload.php';
pFilterType = (stage.loaderInfo.parameters.filterType)? stage.loaderInfo.parameters.filterType : 'Images';
pFileFilters = (stage.loaderInfo.parameters.fileFilters)? stage.loaderInfo.parameters.fileFilters : '*.jpg;*.jpeg;*.gif;*.png';
file = new FileReference();
setup(file);
select_btn.addEventListener(MouseEvent.CLICK, browse);
progress_mc.bar.scaleX = 0;
tm = new Timer(1000);
tm.addEventListener(TimerEvent.TIMER, updateSpeed);
cancel_btn.addEventListener(MouseEvent.CLICK, cancelUpload);
cancel_btn.visible = false;
ExternalInterface.addCallback("jsUploadFile", uploadFile);
ExternalInterface.addCallback("jsIsFileSelected", IsFileSelected);
}
public function browse(e:MouseEvent){
filefilters = [ new FileFilter(pFilterType, pFileFilters) ]; file.browse(filefilters);
}
private function selectHandler(e:Event){
var tf = new TextFormat();
tf.color = 0x000000;
label_txt.defaultTextFormat = tf;
label_txt.text = file.name;
//file.upload(req);
}
public function IsFileSelected():Boolean{
if(label_txt.text != "")
{
return true;
}
else
{
return false;
}
}
public function uploadFile():void{
file.upload(req);
}
* *注意:並非所有的Flash代碼都顯示,因爲有很多。我提出我認爲需要了解究竟發生了什麼。
如果有什麼我可以添加進一步的細節請讓我知道。提前致謝!
我很困惑你爲什麼使用Flash? –