使用jQuery AJAX上传文件/使用FileTransfer函数发送其他数据

时间:2013-05-15 16:44:00

标签: jquery cordova

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

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

实际上,这是我正在努力实现的过程:

  1. 用户录制语音,语音文件被分配一个随机生成的名称并保存到SD卡上。
  2. 然后将文件与临时文件名一起传送到服务器上的PHP文件。
  3. 将文件移至/ upload目录,其名称与上传目录相同。
  4. 服务器将响应发送回Phonegap,通知应用程序上传已完成。
  5. 应用程序然后使用DOM更改内容,并加载音频播放器以播放最新文件(因为文件将与上传的文件具有相同的名称,因此不需要任何类型的数据响应服务器,只是一个通知)。
  6. 我尝试将AJAX和FileTransfer功能混合在一起(显然不起作用,因为它每次都使用不同的数据访问upload.php文件两次)。是否有一种方法可以传递(和子顺序接收)来自File Transfer方法的数据,甚至是使用jQuery AJAX传递文件的方法?

    提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

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

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