Phonegap黑莓照片上传服务器php脚本

时间:2012-09-25 20:24:12

标签: php html5 cordova blackberry camera

有很多人提出与此问题相关的问题,但没有一个问题足以让我解决我的问题。

我已经基于phonegap创建了一个完全正常工作的HTML5智能手机应用程序,用于...不寒而栗......黑莓正在使用服务器端PHP脚本将数据很好地发送到远程MYSQL服务器。

但是我想提供上传照片的选项,因为这是伤害预防,并且需要拍摄危险。这是一款非商业产品,它是现代智能手机技术的典范,展示了如何将一个应用程序轻松移植到各种智能手机上。黑莓是普通手机,必须成为最好的例子。

我不能因为爱而找不到应用程序和php服务器端脚本的任何工作示例。

我从CORDOVA示例文件中提取的示例拍摄了一张照片,我可以在我的应用中看到生成的缩略图,这一点都很甜(基于您在下面看到的所有代码),但我不知道我在做什么我需要为upload.php编程来做点什么。我尝试的所有内容都失败了,错误代码为3和1 ..

以下是webapp的重要代码。

HTML

    <h3>navigator.camera</h3>
<input type="button" value="Get Photo (Data)" onclick="capturePhoto();return false;" /> 
<input type="button" value="Get Photo (URI)" onclick="capturePhotoURI();return false;" /> 
<img style="display:none;width:120px;height:120px;" id="cameraImage" src="" />
<p id="uploadProgress"></p>
<input style="display:none;" id="uploadButton" type="button" value="Upload" onclick="uploadImage();return false;" />     

JAVASCRIPT

        function capturePhotoURI() {
        navigator.camera.getPicture(onCapturePhotoURISuccess, fail, 
            { destinationType: Camera.DestinationType.FILE_URI, quality: 50 });
    }

        function onCapturePhotoURISuccess(imageURI) {
        if (imageURI != null) {
            var smallImage = document.getElementById('cameraImage');
            var uploadButton = document.getElementById('uploadButton');

            // Unhide image elements
            smallImage.style.display = 'block';
            uploadButton.style.display = 'block';

            // Show the captured photo
            // The inline CSS rules are used to resize the image
            smallImage.src = imageURI;
        }
    }

        function uploadImage() {
        var smallImage = document.getElementById('cameraImage');
        if (smallImage.src && smallImage.src !== "") {
            var f = new FileTransfer();
            f.upload(
                // file path
                smallImage.src,
                // server URL - update to your own, and don't forget to 
                // include your domain in an access element in config.xml      
                "http://192.168.1.91/upload.php",
                // success callback
                function(result) {
                    document.getElementById('uploadProgress').innerHTML =
                        result.bytesSent + ' bytes sent';
                    alert(result.responseCode + ": " + result.response);
                },
                // error callback
                function(error) {
                    alert('error uploading file: ' + error.code);
                },
                // options
                { fileName: 'myImage.jpg', 
                  params: { 'username':'jtyberg' } 
                });
        }
    }

上面的服务器ID是正确的(这是我自己的开发服务器的正确翻译,所以我不使用localhost,因为我需要这是准确的)。除服务器IP外,您看到的所有内容都是vanilla,开箱即用,来自phonegap的未经改动的工作示例。手机是一个相同的192网络,并且明确地尝试运行任何upload.php我尝试

基本上我想要获取此文件,并使用upload.php文件将其移至

http:// 192.168.1.91/injury/sample_images/xxxx.jpg(间隔http不知道如何阻止它链接)

我已经检查了权利,他们都没问题,我的config.html允许所有域名

任何人都可以请我解决我的痛苦,并给我一个示例upload.php,它将使用上面的上传代码,只是对相机图像做一些事情。

一旦我能得到一个有效的例子,我就可以准确地分解正在发生的事情并开始学习过程。

另外,如果有人可以提供一个有效的应用程序..同时使用应用程序和服务器端代码作为教程,我很高兴参与研究。

许多人提前感谢人们为此付出的代价。我在我的智慧结束时,当我能够完成这件事时,让自己陷入困境。

1 个答案:

答案 0 :(得分:0)

我决定使用base64字符串的发布方法。但我确实发现,在这种情况下,更可能是我的开发服务器上的设置可能是原因。