From 63b62e5f4003ba154d44e04642bceb5a9f5163e8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 20 Sep 2015 11:35:52 -0400 Subject: [PATCH] support multi-form data for camera upload --- MediaBrowser.Api/Devices/DeviceService.cs | 37 +++++++++++++++++------ 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/MediaBrowser.Api/Devices/DeviceService.cs b/MediaBrowser.Api/Devices/DeviceService.cs index ab0a4a4b2a..759eea3537 100644 --- a/MediaBrowser.Api/Devices/DeviceService.cs +++ b/MediaBrowser.Api/Devices/DeviceService.cs @@ -1,4 +1,6 @@ -using MediaBrowser.Controller.Devices; +using System; +using System.Linq; +using MediaBrowser.Controller.Devices; using MediaBrowser.Controller.Net; using MediaBrowser.Model.Devices; using MediaBrowser.Model.Querying; @@ -128,15 +130,32 @@ namespace MediaBrowser.Api.Devices var id = Request.QueryString["Id"]; var name = Request.QueryString["Name"]; - var task = _deviceManager.AcceptCameraUpload(deviceId, request.RequestStream, new LocalFileInfo + if (Request.ContentType.IndexOf("multi", StringComparison.OrdinalIgnoreCase) == -1) { - MimeType = Request.ContentType, - Album = album, - Name = name, - Id = id - }); - - Task.WaitAll(task); + var task = _deviceManager.AcceptCameraUpload(deviceId, request.RequestStream, new LocalFileInfo + { + MimeType = Request.ContentType, + Album = album, + Name = name, + Id = id + }); + + Task.WaitAll(task); + } + else + { + var file = Request.Files.First(); + + var task = _deviceManager.AcceptCameraUpload(deviceId, file.InputStream, new LocalFileInfo + { + MimeType = file.ContentType, + Album = album, + Name = name, + Id = id + }); + + Task.WaitAll(task); + } } } }