2012-03-14 46 views
7

好吧,我有一個上傳圖片的小應用程序(使用phonegap,Jquery)。我有jQuery處理通過AJAX上傳。圖像正在發送,但我不知道如何正確處理它在外面。任何想法都非常歡迎!這裏是我到目前爲止的代碼:PHP服務器從Phonegap和Jquery上傳圖片

PHP:

<?php 
    ////////THE PROBLEM AREA I THNK////////// 
    if ($_REQUEST['image']) { 

      // convert the image data from base64 
      $imgData = base64_decode($_REQUEST['image']); 

      // set the image paths 
      $file = '/uploaded_files/' . md5(date('Ymdgisu')) . '.jpg'; 
      $url = 'http://creativetree.co/creativetreeAlpha' . $file; 

      // delete the image if it already exists 
      if (file_exists($file)) { unlink($file); } 

      // write the imgData to the file 
      $fp = fopen($file, 'w'); 
      fwrite($fp, $imgData); 
      fclose($fp); 
    } 

    echo "<h1>Page is online</h1>"; 
    echo "<p>Nothing special just a first go at phonegap! </p>"; 
    echo "<h2>Contents of uploaded_files Folder to show iphone upload</h2>"; 

    $dir = '/homepages/22/d397139588/htdocs/creativetreeAlpha/uploaded_files'; 

    if ($handle = opendir($dir)) { 
     while (false !== ($file = readdir($handle))) { 
      if ($file != "." && $file != "..") { 
       echo "$file\n"; 
       echo "<br>"; 
      } 
     } 
     closedir($handle); 
    } 
    ?> 

基本HTML:

<script> 
function onBodyLoad() { 
document.addEventListener("deviceready",onDeviceReady,false); 
} 
</script> 
</head> 
<body onload="onBodyLoad()"> 
<body> 
     <h1>Upload an image</h1> 

     <div id="upload"  
     <input type="button" class="send-image" value="camera" /> 
     <input type="button" class="send-image" value="library" /> 
     <img style="width:60px; height:60px" id="image" src="" /> 
     </div> 

<div id="output"></div> 
</body> 
</html> 

的Javascript:

$(document).ready(function(){ 
    $(document).bind('deviceready', function(){ 

    function sendImage(src) { 

    src = (src == 'library') ? Camera.PictureSourceType.PHOTOLIBRARY : Camera.PictureSourceType.CAMERA; 
    navigator.camera.getPicture(success, fail, {quality: 45, sourceType: src}); 

          function success(imageData) { 
          var url = 'http://creativetree.co/creativetreeAlpha/mobileImageUpload.php'; 
          var params = {image: imageData}; 

          // send the data 
          $.post(url, params, function(data) { 
            alert('sent'); 
            // Display the selected image on send complete 
            $('#image').attr('src', 'data:image/jpeg;base64,' + params['image']);  
          }); 
          } 
} 

    function fail(message) { alert(message); } 

    $('.send-image').click(function() { sendImage($(this).val()); }); 

    }); 
}); 

回答

0

長話短說我需要在我的在線服務器文件夾上設置權限。

同樣值得注意的是任何使用phonegap和訪問URL的新開發者(顯然對於AJAX都很重要)。 URL必須在Xcode項目中設置(PhoneGap.plist包含一個數組來存儲外部URL)。

這對一些人來說可能是顯而易見的,但即使通過PhoneGap(或者至少我沒有看到我的瘋狂谷歌搜索)似乎沒有很好的記錄。我學習的wiki教程沒有提到這件事。

查看圖片瞭解詳情。

enter image description here

1

在您使用創建圖像目錄檢查寫權限FWRITE。