Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Umbraco媒体服务创建媒体_C#_Umbraco_Asp.net Web Api - Fatal编程技术网

C# Umbraco媒体服务创建媒体

C# Umbraco媒体服务创建媒体,c#,umbraco,asp.net-web-api,C#,Umbraco,Asp.net Web Api,我需要帮助,我目前正在开发一个Umbraco api,它将从第三方网站以编程方式创建媒体 我正在使用以下内容创建媒体 public HttpResponseMessage CreateMedia() { var mediaService = Services.MediaService; using (WebClient client = new WebClient()) { Stream s = clien

我需要帮助,我目前正在开发一个Umbraco api,它将从第三方网站以编程方式创建媒体

我正在使用以下内容创建媒体

    public HttpResponseMessage CreateMedia()
    {
        var mediaService = Services.MediaService;

        using (WebClient client = new WebClient())
        {
            Stream s = client.OpenRead("http://karl.media.local/Uploads/ef093845-41dd-4620-        b220-1b346a5f9b2e.jpg");

            using (MemoryStream ms = new MemoryStream())
            {
                s.CopyTo(ms);

                var mediaImage = mediaService.CreateMedia("test4", 1152, "Image");
                mediaImage.SetValue("umbracoFile", "test4", ms);
                mediaService.Save(mediaImage);
            }
        }

        var response = Request.CreateResponse(HttpStatusCode.OK);

        response.Content = new StringContent("ExternalMediaCreate", Encoding.UTF8, "application/json");
        return response;
    }
}
我在这行mediaImage.SetValue(“umbracoFile”、“test4”、ms”)上遇到以下错误

<Error>
    <Message>An error has occurred.</Message>
    <ExceptionMessage>
        Length cannot be less than zero. Parameter name: length
    </ExceptionMessage> 
</Error>

发生了一个错误。
长度不能小于零。参数名称:长度
任何帮助都将不胜感激

提前感谢

解决了这个问题

我需要将该文件加载到文件流中,以便访问该名称

public HttpResponseMessage CreateMedia()
        {
            var mediaService = Services.MediaService;
            var request = WebRequest.Create("http://karl.media.local/Uploads/ef093845-41dd-4620-b220-1b346a5f9b2e.jpg");
            var webResponse = request.GetResponse();
            var responseStream = webResponse.GetResponseStream();

            if (responseStream != null)
            {
                var originalImage = new Bitmap(responseStream);

                var path = HttpContext.Current.Server.MapPath("~/_tmp/ef093845-41dd-4620-b220-1b346a5f9b2e.jpg");


                originalImage.Save(path, ImageFormat.Jpeg);


                FileStream fileStream = new FileStream(path, FileMode.Open);
                var test = fileStream.Name;


                var mediaImage = mediaService.CreateMedia("test4", 1152, "Image");
                mediaImage.SetValue("umbracoFile", test, fileStream);
                mediaService.Save(mediaImage);

                responseStream.Dispose();
                webResponse.Dispose();
                originalImage.Dispose();
            }


            var response = Request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent("ExternalMediaCreate", Encoding.UTF8, "application/json");
            return response;
        }