PHP сервер Загрузить изображение из PhoneGap и Jquery - PullRequest
7 голосов
/ 14 марта 2012

Хорошо, у меня есть небольшое приложение для загрузки изображения (с помощью phonegap, Jquery).У меня есть загрузка JQuery обработки через AJAX.Изображение отправляется, но я не уверен, как правильно его обработать на обратной стороне.Любые мысли очень приветствуются!Вот мой код:

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()); });

  });
});

Ответы [ 2 ]

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

Проверьте права на запись для каталога, в котором вы создаете образ с помощью fwrite.

0 голосов
/ 16 марта 2012

Короче говоря, мне нужно было установить разрешения для папок моего онлайн-сервера.

Также стоит отметить для любых новых разработчиков iphone, использующих телефонный разрыв и доступ к URL (очевидно, что это важно для AJAX). URL должен быть установлен в проекте Xcode (PhoneGap.plist содержит массив для хранения внешних URL).

Это может быть очевидным для некоторых, но, похоже, не очень хорошо задокументировано даже PhoneGap (или, по крайней мере, я не видел в моих безумных поисках в Google). Учебник по вики, который я изучал, ничего об этом не упоминал.

Подробнее см. Изображение.

enter image description here

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