2016-11-08 94 views
1

我正在使用Cordova文件上傳插件上傳圖片。我試圖從圖庫上傳圖片到服務器,但文件沒有上傳到服務器。圖片上傳不起作用於科爾多瓦

這是js代碼。

function uploadImage() { 
    document.getElementById('picture_msg').innerHTML = ""; 
    // Get URI of picture to upload 
    navigator.camera.getPicture(
     function(uri) { 
      try { 
       // Pick image from div 
       var img = document.getElementById('pimage'); 
       img.style.visibility = "visible"; 
       img.style.display = "block"; 
       var imageURI = uri; 
       if (!imageURI || (img.style.display == "none")) { 
        document.getElementById('picture_msg').innerHTML = "Tap on picture to select image from gallery."; 
        return; 
       } 
       // Verify server has been entered 
       server = document.getElementById('server').value; 
       server = 'http://domain_name/mobile_app/img_upload.php'; 
       console.log("Server "+server); 
       if (server) { 
        // Specify transfer options 
        var options = new FileUploadOptions(); 
        options.fileKey="file"; 
        options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1); 
        options.mimeType="image/jpeg"; 
        options.chunkedMode = false; 

        // Transfer picture to server 
        var ft = new FileTransfer(); 
        ft.upload(imageURI, server, function(r) { 
         document.getElementById('picture_msg').innerHTML = "Upload successful: "+r.bytesSent+" bytes uploaded."; 
         img.src = uri; 
         img.width = 100; 
         img.height = 100; 
        }, 
        function(error) { 
         document.getElementById('picture_msg').innerHTML = "Upload failed: Code = "+error.code; 
        }, options); 
       } 
       else { 
        document.getElementById('picture_msg').innerHTML = "Server Not Found"; 
       } 
      } 
      catch(exce) { 
       alert(exce); 
      } 
     }, 
     function(e) { 
      console.log("Error getting picture: " + e); 
      document.getElementById('picture_msg').innerHTML = "No Image Found"; 
     }, 
     { 
      quality: 50, 
      destinationType: navigator.camera.DestinationType.FILE_URI, 
      sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY 
     } 
    ); 
} 

這裏是img_upload.php代碼。

print_r($_FILES); 
$new_image_name = "namethisimage.jpg"; 
move_uploaded_file($_FILES["file"]["tmp_name"], "mobile_app/".$new_image_name); 

我也試過這個。

$dirname = "user_img/"; 
// If uploading file 
if ($_FILES) { 
    print_r($_FILES); 
    // mkdir ($dirname, 0777, true); 
    move_uploaded_file($_FILES["file"]["tmp_name"],$dirname."/".$_FILES["file"]["name"]); 
} 

我得到上傳成功的消息,但當我檢查服務器上的數據顯示爲空。沒有文件在那裏。

請告訴我在這裏做錯了什麼。

編輯

這似乎是用PHP文件的問題。在網絡服務器的路徑是/public_html/app/user_imgs

我的PHP文件img_upload.php在應用程序文件夾下。

+0

設備控制檯上的任何錯誤?你在實際設備中測試嗎? – Gandhi

+0

設備控制檯上沒有錯誤。我在設備上測試它。不在模擬器上。 – Ironic

+0

嘗試從服務器獲得響應,例如'alert(r.response);' –

回答

0

終於在7天后,我解決了這個問題。其實我很愚蠢。 你會笑我。

我給出的網址是http://sample.com/upload_img.php我只需要在url中添加www。所以,工作網址是http://www/sample.com/upload_img.php。 它解決了這個問題。

我希望別人能從中獲得幫助。

+0

這是[你的答案在這裏]的副本(https://stackoverflow.com/a/40560991/472495)。 – halfer