0

目前PhoneGap遇到了一些真正的麻烦。如果我在这里尝试做的事情是不可能的,或者我认为这完全错误,请纠正我。

基本上,我正在构建一个应用程序,在将文件上传到服务器之前记录用户的声音。我已经成功地将文件发送到服务器没有问题,但我还想传递一些额外的参数,这些参数在我将数据放入数据库时​​会有所帮助。

实际上,这是我试图实现的过程:

  1. 用户录制语音,语音文件被分配一个随机生成的名称并保存到 SD 卡中。
  2. 然后将该文件连同临时文件名一起传输到服务器上的 PHP 文件。
  3. 该文件被移动到 /upload 目录,其名称与上传时相同。
  4. 服务器将响应发送回 Phonegap,通知应用程序上传完成。
  5. 然后应用程序使用 DOM 更改内容,并加载音频播放器以播放最新文件(因为文件将与上传时使用相同的名称,它不需要来自服务器的任何类型的数据响应,只是一个通知)。

我尝试将 AJAX 和 FileTransfer 函数混合在一起(这显然不起作用,因为它每次使用不同的数据访问 upload.php 文件两次)。有没有办法从文件传输方法传递(和子顺序接收)数据,甚至是使用 jQuery AJAX 传递文件的方法?

在此先感谢您的帮助!

4

1 回答 1

1

您应该将成功和失败回调函数附加到您的FileTransfer.upload方法中,请参见此处:http ://cordova.apache.org/docs/en/edge/cordova_file_file.md.html#FileTransfer

在该页面的“快速示例”中,win 函数是成功回调。在您的win函数中(例如,文件上传成功时调用的successCallback),然后您可以添加代码来更改DOM 并启动音频播放器。由于文件名不会更改,因此您可以将该文件名存储在变量中。

我不确定 jquery-ajax 与此有什么关系。

于 2013-05-15T19:03:00.223 回答