2011-12-27 67 views
0

我想从phonegap应用程序(android)上传捕获/库图像,当我打电话给asmx web服务时,我有一个连接错误,请注意,移动和服务器上同一网络从android phonegap上传图像到服务器使用asmx

这里是我的代码:

<!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> 

这里是我的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(); 
    } 
} 
+0

为什么不ü使用FileTransfer.upload的Phonegap? – ghostCoder

+0

你会得到什么错误? – Flatlineato

回答

0

可能是防火墙的问题?哟启用端口80访问外部设备?请注意,您必须承载在IIS服务没有Kasini(默认的Visual Studio Service)

罗斯

1

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

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