Можно ли прослушать загрузку FileTransfer Upload в PhoneGap? - PullRequest
1 голос
/ 15 марта 2012

В настоящее время я использую PhoneGap и перехожу к загрузке FileTransfer через мое приложение.К сожалению, при отправке файла у меня нет уведомлений и нет индикатора выполнения.

Я хочу знать, можем ли мы прослушать FileTransfer для выполнения вычислений.(Или, если есть другой способ запретить пользователю прогресс FileTransfer.

Спасибо,

Yeppao

Код:

    var file;
var pictureSource;   // picture source
var destinationType; // sets the format of returned value

// Wait for PhoneGap to connect with the device
//
document.addEventListener("deviceready",onDeviceReady,false);

// PhoneGap is ready to be used!
//
function onDeviceReady() {
  pictureSource=navigator.camera.PictureSourceType;
  destinationType=navigator.camera.DestinationType;
}

// Called when a photo is successfully retrieved
//
function onPhotoURISuccess(fileURI) {
  file = fileURI;

}


function uploadFile() {
  alert('up begin');
  function uploadSuccess(success)
  {
    alert(success);
  }

  function uploadError(error)
  {
    alert(error);
  }

  var options = new FileUploadOptions();
  options.fileKey="file";
  options.fileName=file.substr(file.lastIndexOf('/')+1);
  options.mimeType="application/octet-stream";

  var params = new Object();
  params.title = $("#video-name").val();
  params.value2 = "param";

  options.params = params;
  options.chunkedMode = true;

  var ft = new FileTransfer();

  ft.upload(file, "http://myserver/file.php", uploadSuccess, uploadError, options);

}

// A button will call this function
//
function getFile() {
  // Retrieve image file location from specified source
  navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
        destinationType: destinationType.FILE_URI,
        sourceType: pictureSource.PHOTOLIBRARY,
        mediaType: navigator.camera.MediaType.ALLMEDIA });
}

// Called if something bad happens.
//
function onFail(message) {
  alert('Failed because: ' + message);
}

Вот часть HTML:

   <div id="file-name"></div>
    <button style="height: 100px;background-color: #FFF;" data-role="button" onclick="getFile();">From Photo Library</button><br>
  <input type="text" value="" id="video-name" name="video-name" /> 
<input style="background-color: #FFF;" type="button" id="test" onclick="uploadFile()" name="test" value="Ok" />

Ответы [ 2 ]

1 голос
/ 04 июня 2012

Я не пробовал это, но, возможно, вы можете сделать это со стороны сервера. Постоянно запрашивая страницу, которая сообщит вам текущее состояние обновления загружаемого файла.

1 голос
/ 16 марта 2012

Наличие индикатора выполнения может быть сложным, но если вы используете jquery mobile, вы можете использовать $ .mobile.showPageLoadingMsg и $ .mobile.hidePageLoadingMsg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...