2013-03-01 43 views
0

以下this教程,我创建iPhone客户端的文件传输。我可以选择要上传的文件,但在上传到服务器时会出现如下错误。上传错误Filetranser iphone phonesgapgap应用程序与serverside聊天室mvc

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

     var params = new Object(); 
     params.value1 = "test"; 
     params.value2 = "param"; 

     options.params = params; 
     options.chunkedMode = false; 

     var ft = new FileTransfer(); 
     ft.upload(imageURI, "http://*****.azurewebsites.net/api/FileUploadTest", win, fail, options); 
    } 

Serverside集团代码

public class FileUploadTestController : ApiController 
{ 
    [WebMethod] 
    public string Getupload() 
    { 
     if (HttpContext.Current.Request.Files["file"] != null) 
     { 
      HttpPostedFile file = HttpContext.Current.Request.Files["file"]; 
      string targetFilePath = "http://stampedemvc.azurewebsites.net/Content/img/" + file.FileName; 
      file.SaveAs(targetFilePath); 

      return file.FileName.ToString(); 

     } 
     else { 

      return "Error"; 

     } 
    } 
} 

2013-03-01 19:38:35.841 StampedeTest[1687:c07] FileTransferError { 
code = 3; 
"http_status" = 405; 
source = "file://localhost/Users/davidroper/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/5C506A40-959F-4A15-8D01-B3343EDB3257/tmp/cdv_photo_004.jpg"; 
target = "http://******.azurewebsites.net/api/FileUploadTest"; 
} 

客户端代码我怎样才能使这方面的工作?

谢谢。

回答

0

我明白了!

我改变apicontroller到控制器

工作代码

[HttpPost] 
    public string Getupload() 
    { 

     HttpFileCollectionBase Files = Request.Files; 

     bool fileSaved = false; 

     foreach (string h in Files.AllKeys) 
     { 

      if (Files[h].ContentLength > 0) 
      { 
       string fileName = Files[h].FileName; 
       int fileSize = Files[h].ContentLength; 

       string serverPath = Path.Combine(Server.MapPath("..\\Content\\img\\")); 

       if (!Directory.Exists(serverPath)) 
       { 
        Directory.CreateDirectory(serverPath); 
       } 

       try 
       { 
        //Get & Save the File 
        Request.Files.Get(h).SaveAs(serverPath + fileName); 
        fileSaved = true; 

       } 
       catch (Exception ex) 
       { 

       } 

      } 
     } 

     return "Success"; 
    }