2016-11-08 46 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