Browse Source

support multi-form data for camera upload

Luke Pulverenti 9 years ago
parent
commit
63b62e5f40
1 changed files with 28 additions and 9 deletions
  1. 28 9
      MediaBrowser.Api/Devices/DeviceService.cs

+ 28 - 9
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.Controller.Net;
 using MediaBrowser.Model.Devices;
 using MediaBrowser.Model.Devices;
 using MediaBrowser.Model.Querying;
 using MediaBrowser.Model.Querying;
@@ -128,15 +130,32 @@ namespace MediaBrowser.Api.Devices
             var id = Request.QueryString["Id"];
             var id = Request.QueryString["Id"];
             var name = Request.QueryString["Name"];
             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);
+            }
         }
         }
     }
     }
 }
 }