0

使用cordova媒體捕獲和文件傳輸插件我試圖讓一個應用程序來記錄視頻並上傳到服務器上。錄製視頻後,我會調用上傳功能,並在成功回調函數中顯示成功消息。但沒有文件上傳到服務器。在這裏我的代碼。科爾多瓦文件上傳不工作在Android

  $(document).ready(function(){ 
       document.addEventListener("deviceready", onDeviceReady, false); 
      }); 

      function onDeviceReady() { 
      navigator.device.capture.captureVideo(captureSuccess, captureError, {limit:1}); 
      } 
      var captureSuccess = function(mediaFiles) { 
         var i, len; 
         for (i = 0, len = mediaFiles.length; i < len; i += 1) { 
          uploadFile(mediaFiles[i]); 
         } 
       }; 

      var captureError = function(error) { 
       alert('error'); 
       console.log(error); 
      }; 

      /********* File Upload **********/ 

      // Upload files to server 
       function uploadFile(mediaFile) { 
        var ft = new FileTransfer(), 
         path = mediaFile.fullPath, 
         name = mediaFile.name; 



        ft.upload(path, 
         "http://myserver.com/test.php", 
         function(result) { 
          alert('success'); 
         }, 
         function(error) { 
          alert('error'); 
         }, 
         { fileName: name, fileKey: "file" }); 
       } 

我的PHP代碼是

<?php 
if($_FILES['file']['size'] > 0) { 
$path = $_SERVER['DOCUMENT_ROOT']."/audior/app/"; 
$tmpname1 = $_FILES['file']['tmp_name']; 
$ptname1 = $_FILES['file']['name']; 
move_uploaded_file($tmpname1, $path . $ptname1); 

echo 'success'; 
} 
?> 

回答

0

你必須創建一個FileUploadOptions對象

var options = new FileUploadOptions(); 
options.fileKey = "file"; 
options.fileName = name; 

然後用它的上傳功能

ft.upload(path, 
      "http://myserver.com/test.php",   
      function(result) { 
       alert('success'); 
      }, 
      function(error) { 
       alert('error'); 
      }, 
      options); 

你也可以改變

function(result) { 
    alert('success'); 
} 

function(result) { 
    alert(result); 
} 

只是爲了檢查服務器是否在告訴你什麼。

如果您正在獲得成功回調,則問題應該在PHP腳本上。

我用這一個返回上傳文件

<?php 

$target_dir = "upload/"; 
$target_file = $target_dir . basename($_FILES["file"]["name"]); 
move_uploaded_file($_FILES["file"]["tmp_name"], "./" . $_FILES["file"]["name"]); 
echo "http://" . $_SERVER['SERVER_NAME'] . "/" . $target_file; 

?> 
+0

的URL創建FileUploadOptions對象仍然文件沒有上傳後。 – Rahul

+0

好吧,如果成功被調用,問題可能出現在服務器上,請嘗試使用我的代碼 – jcesarmobile

相關問題