Phonegap上传到asp net webserver - 没有回应

时间:2013-10-10 08:06:52

标签: asp.net cordova

这是我的javascript代码:

var fileURL = "file://" + mFileListURL[0].fullPath;
var options = new FileUploadOptions();
options.fileKey = "recFile";
var imagefilename = Number(new Date()) + ".jpg";
options.fileName = imagefilename;
options.mimeType = "image/jpeg";    
var params = new Object();      
options.params = params;

var ft = new FileTransfer();
ft.upload(fileURL,"http://mywebserver/UploadFoto.asmx/SaveImage",
                function(r) {
                    alert("It's OK!");
                    alert("Response = " + r.response);

                }, function(error) {
                    alert("An error has occurred: Code = "
                            + error.code);
                }, options);

和此服务器端代码:

        [WebMethod]
        [GenerateScriptType(typeof(String))]
        [ScriptMethod]
        public String SaveImage()
        {
            HttpContext context = HttpContext.Current;
            if (context.Request.Files.Count > 0)
            {
                HttpFileCollection files = context.Request.Files;
                foreach (string key in files)
                {
                    HttpPostedFile file = files[key];
                    string fileName = file.FileName;
                    if (fileName != null && fileName != "")
                    {                        
                        String fileStored = System.IO.Path.Combine(context.Server.MapPath("~/public/"), fileName);                           
                        file.SaveAs(fileStored);                       
                    }
                }
            }            
            return "Filestored OK";
        }

现在,图片上传已完成,但我没有返回字符串,没有来自服务器的响应,没有错误代码。我也使用了Json响应但没有(图像上传,没有响应,没有返回字符串)。 怎么了?

感谢。 IngD

2 个答案:

答案 0 :(得分:0)

试试这个

function(r) 
{
  alert("It's OK!");
  alert("Sent = " + r.bytesSent);
}

答案 1 :(得分:0)

WebMethod必须是静态的

[WebMethod]
        [GenerateScriptType(typeof(String))]
        [ScriptMethod]
        public static String SaveImage()
        {
            HttpContext context = HttpContext.Current;
            if (context.Request.Files.Count > 0)
            {
                HttpFileCollection files = context.Request.Files;
                foreach (string key in files)
                {
                    HttpPostedFile file = files[key];
                    string fileName = file.FileName;
                    if (fileName != null && fileName != "")
                    {                        
                        String fileStored = System.IO.Path.Combine(context.Server.MapPath("~/public/"), fileName);                           
                        file.SaveAs(fileStored);                       
                    }
                }
            }            
            return "Filestored OK";
        }