-
Notifications
You must be signed in to change notification settings - Fork 577
Expand file tree
/
Copy pathFileSystemDataStreamProvider.cs
More file actions
30 lines (24 loc) · 1.02 KB
/
Copy pathFileSystemDataStreamProvider.cs
File metadata and controls
30 lines (24 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
public class FileSystemDataStreamProvider : MultipartFormDataStreamProvider
{
public FileSystemDataStreamProvider(string path) : base(path) { }
public override Stream GetStream(HttpContent parent, HttpContentHeaders headers)
{
//TODO: pull from config or pass as a parameter
var extensions = new[] { "png", "gif", "jpg", "zip", "xml" };
var filename = headers.ContentDisposition.FileName.Replace("\"", string.Empty);
if (filename.IndexOf('.') < 0)
return Stream.Null;
var extension = filename.Split('.').Last();
return extensions.Any(i => i.Equals(extension, StringComparison.InvariantCultureIgnoreCase))
? base.GetStream(parent, headers) : Stream.Null;
}
public override string GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders headers)
{
return headers.ContentDisposition.FileName.Replace("\"", string.Empty);
}
}