Advertisement
Guest User

Untitled

a guest
Apr 19th, 2014
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. public async Task<HttpResponseMessage> PostFile()
  2. {
  3. // Check if the request contains multipart/form-data.
  4. if (!Request.Content.IsMimeMultipartContent())
  5. {
  6. throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
  7. }
  8.  
  9. //string root = HttpContext.Current.Server.MapPath("~/App_Data");
  10. string root = HttpContext.Current.Server.MapPath("~/Files");
  11. var provider = new MultipartFormDataStreamProvider(root);
  12.  
  13. try
  14. {
  15. StringBuilder sb = new StringBuilder(); // Holds the response body
  16.  
  17. // Read the form data and return an async task.
  18. await Request.Content.ReadAsMultipartAsync(provider);
  19.  
  20. // This illustrates how to get the form data.
  21. foreach (var key in provider.FormData.AllKeys)
  22. {
  23. // Trace.WriteLine(key.Headers.ContentDisposition.FileName);
  24. foreach (var val in provider.FormData.GetValues(key))
  25. {
  26. sb.Append(string.Format("{0}: {1}n", key, val));
  27. }
  28. }
  29.  
  30. // This illustrates how to get the file names for uploaded files.
  31. foreach (var file in provider.FileData)
  32. {
  33. FileInfo fileInfo = new FileInfo(file.LocalFileName);
  34. sb.Append(string.Format("Uploaded file: {0} ({1} bytes)n", fileInfo.Name, fileInfo.Length));
  35. }
  36. return new HttpResponseMessage()
  37. {
  38. Content = new StringContent(sb.ToString())
  39. };
  40. }
  41. catch(System.Exception e)
  42. {
  43. return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
  44. }
  45. }
  46.  
  47. using System.Net.Http;
  48. using System.Net.Http.Headers;
  49.  
  50. ...
  51.  
  52. public class CustomMultipartFormDataStreamProvider
  53. : MultipartFormDataStreamProvider
  54. {
  55. public CustomMultipartFormDataStreamProvider(string path)
  56. : base(path)
  57. {
  58. }
  59.  
  60. public override string GetLocalFileName(HttpContentHeaders headers)
  61. {
  62. return headers.ContentDisposition.FileName.Replace(""", string.Empty);
  63. }
  64. }
  65.  
  66. var provider = new MultipartFormDataStreamProvider(root);
  67.  
  68. var provider = new CustomMultipartFormDataStreamProvider (root);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement