【问题标题】:Image upload using FileTransfer.Upload to ASP.NET REST API使用 FileTransfer.Upload 将图像上传到 ASP.NET REST API
【发布时间】:2014-06-01 08:53:37
【问题描述】:

我目前正在尝试使用Phonegap ionic framework 实现Android App。我的要求是将图像从画廊上传到远程服务器。为了实现这一点,我实现了ASP.NET REST API 将图像上传到服务器。 (假设我要上传的 URL:http://XXXX.net/api/Upload)。在我的 REST API 中,我实现了UploadController:WebController。我有一个 Post() 方法,如下所示。

服务器代码:

public string Post()
{
    HttpPostedFile MyFile = HttpContext.Current.Request.Files["recFile"];
    if (MyFile == null)
        return null;
    return Utils.UploadToServer(file);
}

我的 Android 代码如下所示:

$scope.UploadPictureEx = function()
{
    var options = new FileUploadOptions();
    options.fileKey="recFile";  
    options.fileName=$scope.emplyeedata.ImageURI.substr($scope.emplyeedata.ImageURI.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";
    var params = new Object();
    params.value1 = "test";
    params.value2 = "param";
    options.params = params;
    options.chunkedMode = false;
    options.httpMethod = "POST";
    options.headers = {
            Connection: "close"
    };
    var ft = new FileTransfer();
    ft.upload($scope.emplyeedata.ImageURI, "http://XXXX.net/api/Upload/", win, fail, options);
}

就是这样。当我执行时,我总是收到错误消息Error code = 3。任何人都可以让我知道如何完成这项工作吗? 我实现 Web API 的方法是否正确?难道我做错了什么? 谢谢!!

【问题讨论】:

    标签: cordova asp.net-web-api cordova-plugins ionic-framework


    【解决方案1】:

    你是否在你的 web api 中启用了cors

    Install-Package Microsoft.AspNet.WebApi.Cors
    

    在您的网络 API 配置中:

    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // New code
            config.EnableCors();
    
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
    

    在您的控制器中,您可以细粒度地控制要启用的功能:

    [EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
    public class TestController : ApiController
    {
        // Controller methods not shown...
    }
    

    【讨论】:

      猜你喜欢
      • 2015-01-10
      • 2021-12-16
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多