2013-05-15 32 views
0

在PhoneGap目前遇到了一些麻煩。如果我想在這裏做什麼是不可能的,或者如果我看着這完全錯誤的話,請糾正我。使用jQuery AJAX上傳文件/使用FileTransfer功能發送更多數據

基本上,我正在構建一個應用程序,在將文件上傳到服務器之前記錄用戶的聲音。我設法將文件發送到服務器沒有問題,但我還想傳遞一些其他參數,這些參數對於將數據放入數據庫時​​會有所幫助。

實際上,這就是我想要實現的過程:

  1. 用戶錄製語音,聲音文件指定一個隨機生成的名稱,並保存到SD卡上。
  2. 然後將文件連同臨時文件名一起傳輸到服務器上的PHP文件。
  3. 將文件移動到/ upload目錄,使用與上載目錄相同的名稱。
  4. 服務器將響應發送回Phonegap,通知應用程序上傳已完成。
  5. 然後,應用程序使用DOM更改內容,並加載音頻播放器以播放最近的文件(因爲該文件將與上載的文件名稱相同,因此不需要任何類型的數據響應服務器,只是一個通知)。

我試着把AJAX和FileTransfer功能混合在一起(顯然沒有工作,因爲它每次訪問upload.php文件兩次,每次都有不同的數據)。有沒有一種方法可能會傳遞(並繼續接收)來自文件傳輸方法的數據,甚至是通過使用jQuery AJAX傳遞文件的方式?

在此先感謝您的幫助!

回答

1

你應該連接成功和失敗的回調函數,以您的FileTransfer.upload方法,在這裏看到:http://cordova.apache.org/docs/en/edge/cordova_file_file.md.html#FileTransfer

在該網頁上的「簡單的例子」,贏的功能是成功的回調。在您的win函數(例如,文件上傳成功時調用的successCallback)中,您可以添加代碼來更改DOM並旋轉音頻播放器。由於文件名不會發生變化,您可以將該文件名存儲在變量中。

我不確定jquery-ajax與此有什麼關係。

+0

感謝您的幫助。我添加了jQuery Ajax,因爲我想將上傳的文件與用戶ID相關聯。但是,我不確定如何將用戶標識值傳遞給PHP文件,以便將其與音頻文件一起添加到數據庫。我想知道是否有一種純粹用jQuery Ajax處理所有這些的方法。再次感謝您的回覆。 –