android - 想在android中使用phonegap将图片上传到服务器

标签 android cordova

我在android phonegap做项目,我想上传图片到服务器。

但我不知道我应该把这段代码放在哪里。

我无法显示任何上传照片的按钮,请帮忙。

我是新来的。我从 phonegap 文档中引用了这段代码。

我已经尝试了几个小时,但找不到更好的解决方案。

这是我的第一个 android phonegap 项目。

代码:

   <head>
   <script type="text/javascript" charset="utf-8" src="cordova-2.4.0.js"></script>
   <script type="text/javascript" charset="utf-8">        
    document.addEventListener("deviceready", onDeviceReady, false);

    function onDeviceReady() {           
        navigator.camera.getPicture(uploadPhoto,
                function(message) { alert('get picture failed'); },
              { quality: 50, destinationType:    navigator.camera.DestinationType.FILE_URI,
                sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY }
             );
    }
    function uploadPhoto(imageURI) {
        var options = new FileUploadOptions();
        options.fileKey="file";
        options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
        options.mimeType="image/jpeg";

        var params = {};
        params.value1 = "test";
        params.value2 = "param";

        options.params = params;

        var ft = new FileTransfer();
        ft.upload(imageURI, encodeURI("http://some.server.com/upload.php"), win, fail, options);
    }

    function win(r) {
        console.log("Code = " + r.responseCode);
        console.log("Response = " + r.response);
        console.log("Sent = " + r.bytesSent);
    }

    function fail(error) {
        alert("An error has occurred: Code = " + error.code);
        console.log("upload error source " + error.source);
        console.log("upload error target " + error.target);
    }

    </script>
 </head>
 <body>
    <h1>Example</h1>
    <p>Upload File</p>
 </body>

最佳答案

您使用下一个代码解决了您的问题:

<script type="text/javascript">  
function uploadFromGallery() {

    // Retrieve image file location from specified source
    navigator.camera.getPicture(uploadPhoto,
                                function(message) { alert('get picture failed'); },
                                { quality: 50, 
                                destinationType: navigator.camera.DestinationType.FILE_URI,
                                sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY }
                                );

}

function uploadPhoto(imageURI) {
    var options = new FileUploadOptions();
    options.fileKey="file";
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1)+'.png';
    options.mimeType="text/plain";

    var params = new Object();

    options.params = params;

    var ft = new FileTransfer();
    ft.upload(imageURI, encodeURI("http://some.server.com/upload.php"), win, fail, options);
}

function win(r) {
    console.log("Code = " + r.responseCode);
    console.log("Response = " + r.response);
    console.log("Sent = " + r.bytesSent);
}

function fail(error) {
    alert("An error has occurred: Code = " + error.code);
    console.log("upload error source " + error.source);
    console.log("upload error target " + error.target);
}
</script>
</head>
<body>
   <a data-role="button" onClick="uploadFromGallery();">Upload from Gallery</a> 
</body>

查看这篇文章的更多信息: https://stackoverflow.com/a/13862151/1853864

关于android - 想在android中使用phonegap将图片上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17445840/

相关文章:

c# - 将图像传递到 Android ListView ArrayAdapter

java - 如何在 Java 中简化这段代码?

javascript - 仅向特定页面添加后退按钮事件监听器

Android 4.3 设备驱动 API 匹配错误

javascript - Phonegap : window. 位置忘记了我的 css 和我的样式

android - Google Exoplayer 如何从 assets/media.exolist.json 更改播放

Android:ListView 中的标题

android - Fragment 中的 View 绑定(bind)导致 KotlinNullPointerException 在生命周期范围的协程内运行

android - 将 ion-nav-bar 的选项卡标题更改为图像 - ionic framework

javascript - Cordova InAppBrowser 在应用程序内显示