Guest User

Untitled

a guest
Jul 28th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. [Route("upload")]
  2. [HttpPost]
  3. public async Task<HttpResponseMessage> Upload()
  4. {
  5. try
  6. {
  7. if (!Request.Content.IsMimeMultipartContent()) {
  8. Request.CreateResponse(HttpStatusCode.UnsupportedMediaType);
  9. }
  10.  
  11. var provider = GetMultipartProvider();
  12.  
  13. var result = await Request.Content.ReadAsMultipartAsync(provider);
  14.  
  15. //Get Album name from Form
  16. var titleOfAlbum = GetTitleOfAlbum(provider);
  17. //get path to file
  18. var pathToCoverDecoded = result.FileData.First().LocalFileName;
  19. var a = "../Files/" + pathToCoverDecoded.Substring(pathToCoverDecoded.IndexOf("BodyPart"));
  20. Album al = new Album();
  21. al.Title = titleOfAlbum;
  22. al.PathToCover = a;
  23. db.Albums.Add(al);
  24. db.SaveChanges();
  25.  
  26. return new HttpResponseMessage(HttpStatusCode.OK);
  27.  
  28.  
  29. }
  30. catch (System.Exception e)
  31. {
  32. return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
  33. }
  34. }
  35.  
  36. private string GetDesereleazedFileName(MultipartFileData fileData)
  37. {
  38. var fileName = GetFileName(fileData);
  39. return JsonConvert.DeserializeObject(fileName).ToString();
  40. }
  41.  
  42. private string GetFileName(MultipartFileData fileData)
  43. {
  44. return fileData.Headers.ContentDisposition.FileName;
  45. }
  46.  
  47. private MultipartFormDataStreamProvider GetMultipartProvider()
  48. {
  49. var uploadFolder = HttpContext.Current.Server.MapPath("~/Files");
  50. if (Directory.Exists(uploadFolder) == false)
  51. {
  52. Directory.CreateDirectory(uploadFolder);
  53. }
  54.  
  55. return new MultipartFormDataStreamProvider(uploadFolder);
  56. }
  57.  
  58. private string GetTitleOfAlbum(MultipartFormDataStreamProvider provider)
  59. {
  60. var titleOfAlbum = "";
  61. foreach(var key in provider.FormData.GetValues(0))
  62. {
  63. titleOfAlbum = key;
  64. }
  65.  
  66. return titleOfAlbum;
  67. }
  68.  
  69.  
  70. }
  71.  
  72. <div ng-repeat="itm in albumsArray">
  73. <img src="{{itm.pathToCover}}" width="100"/>
  74.  
  75. <div ng-repeat="itm in albumsArray">
  76. <img src="../Files/BodyPart_efe0671e-f9fa-4ab3-8503-18ea042eb6ea" width="100"/>
  77.  
  78. var bytes = Encoding.UTF8.GetBytes(a);
  79. var base64 = "~/Files/" + Convert.ToBase64String(bytes);
Add Comment
Please, Sign In to add comment