简体   繁体   English

使用asmx将图像从android phonegap上传到服务器

[英]Upload image from android phonegap to a server using asmx

I'm trying to upload captured/library image from phonegap application (android) , when am calling asmx web service i got a connection error , note that mobile and server are on the same network 我正在尝试从phonegap应用程序(android)上传捕获的/库图像,在调用asmx Web服务时出现连接错误,请注意,移动设备和服务器位于同一网络上

here is my code : 这是我的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>File Transfer Example</title>

    <script type="text/javascript" charset="utf-8" src="phonegap-1.3.0.js"></script>
      <script type="text/javascript" charset="utf-8" src="jquery.js"></script>
    <script type="text/javascript" charset="utf-8">
function getphoto(){
       navigator.camera.getPicture(uploadPhoto,function(message) { 
       alert('get picture failed');
       },{ quality: 10,destinationType:navigator.camera.DestinationType.FILE_URI,sourceType:navigator.camera.PictureSourceType.PHOTOLIBRARY }); 
       }

function uploadPhoto(imageURI) {   

document.getElementById("myimg").src=imageURI;

            var options = new FileUploadOptions(); 
            options.chunkedMode  = false;
            options.fileKey="recFile"; 
            var imagefilename = imageURI; 
            options.fileName=imagefilename; 
            options.mimeType="image/jpeg"; 
           // var params = new Object(); 
            //params.value1 = "test"; 
            //params.value2 = "param"; 
            //options.params = params; 

            var ft = new FileTransfer(); 
            alert(imagefilename);
            //alert(options);
            //alert(params);
            ft.upload(imageURI, "http://10.3.150.16/WebSite1/Service.asmx/SaveImage", win, fail, options); 
        } 
function win(r) { 
            //console.log("Code = " + r.responseCode); 
            //console.log("Response = " + r.response); 
            alert("Sent = " + r.bytesSent); 
        } 
        function fail(error) { 
         switch (error.code) { 
                    case FileTransferError.FILE_NOT_FOUND_ERR: 
                        alert("Photo file not found"); 
                        break; 
                    case FileTransferError.INVALID_URL_ERR: 
                        alert("Bad Photo URL"); 
                        break; 
                    case FileTransferError.CONNECTION_ERR: 
                        alert("Connection error"); 
                        break; 
                } 

            alert("An error has occurred: Code = " + error.code); 
        } 
        </script>
</head>
<body>
    <button onclick="getphoto();">get a Photo</button>
    <button onclick="getphoto();">Upload a Photo</button>
    <img src="" id="myimg" style="border:1px solid #0f0;height:200px;width:200px;" />
</body>
</html>

and here is my asmx we service code: 这是我的asmx我们服务的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]

public class Service : System.Web.Services.WebService
{
    [WebMethod]
    public string SaveImage()
    {
        HttpPostedFile file = HttpContext.Current.Request.Files["recFile"];
        if (file == null)
            return null;
        string targetFilePath = "c:\\deposit\\" + file.FileName;
        file.SaveAs(targetFilePath);
        return file.FileName.ToString();
    } 
}

使用代码path.GetFileName(file.FileName) ,即:

string targetFilePath = "c:\\deposit\\" + Path.GetFileName(file.FileName);

Could be a firewall issue? 可能是防火墙问题? Have yo enabled port 80 access to external devices? 您是否已启用端口80访问外部设备? Note you must host the service in IIS not Kasini (the default visual studio service) 请注意,您必须在IIS中而不是Kasini中托管服务(默认的Visual Studio服务)

Ta

Ross 罗斯

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM