public async Task <HttpResponseMessage> Post(string sessionKey, string channel) { string folderName = "_TemporaryFiles"; string PATH = HttpContext.Current.Server.MapPath("~/" + folderName); string rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty); if (Request.Content.IsMimeMultipartContent()) { var streamProvider = new MultipartFormDataStreamProvider(PATH); //var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable<FileDesc>>(t => //{ // //if (t.IsFaulted || t.IsCanceled) // //{ // // throw new HttpResponseException(HttpStatusCode.BadGateway); // //} // var fileInfo = streamProvider.FileData.Select(i => // { // var info = new FileInfo(i.LocalFileName); // return new FileDesc(info.Name, rootUrl+"/"+folderName+"/"+info.Name, info.Length); // }); // return fileInfo; //}); //return task; try { // Read the form data. await Request.Content.ReadAsMultipartAsync(streamProvider); Pubnub pubnub = new Pubnub("demo", "demo"); string pubnubChannel = channel; //var dbUser = unitOfWork.Users.All().FirstOrDefault(x => x.Sessionkey == sessionkey); var uploader = new DropboxUploader(); List <string> urls = new List <string>(); foreach (MultipartFileData file in streamProvider.FileData) { //Trace.WriteLine(file.Headers.ContentDisposition.FileName); //Trace.WriteLine("Server file path: " + file.LocalFileName); string fileName = file.LocalFileName.Normalize(); var url = uploader.UploadFileToDropBox(fileName.Trim(), file.Headers.ContentDisposition.FileName.Replace("\"", "")); urls.Add(url.ToString()); //dbUser.ProfilePicture = url; pubnub.Publish(pubnubChannel, url.ToString(), (object obj) => {}); //break; } return(Request.CreateResponse(HttpStatusCode.OK, urls)); } catch (System.Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e)); } } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); } }
public HttpResponseMessage PostFiles(string sessionKey, int id) { HttpResponseMessage result = null; var httpRequest = HttpContext.Current.Request; if (httpRequest.Files.Count > 0) { string imageUrl = string.Empty; var postedFile = httpRequest.Files[0]; imageUrl = DropboxUploader.DropboxShareFile(postedFile.InputStream, postedFile.FileName); var postedFileMessage = this.messageRepository.AddFileMessage(sessionKey, id, imageUrl); result = Request.CreateResponse(HttpStatusCode.OK); Notifiers.PubNubNotifier.PublishMessage(JsonConvert.SerializeObject(new { FromUser = postedFileMessage.FromUser.Nickname, ToUser = postedFileMessage.ToUser.Nickname })); } else { result = Request.CreateResponse(HttpStatusCode.BadRequest); } return(result); }
public HttpResponseMessage PostProfileImage(string sessionKey) { HttpResponseMessage result = null; var httpRequest = HttpContext.Current.Request; if (httpRequest.Files.Count > 0) { string imageUrl = string.Empty; var postedFile = httpRequest.Files[0]; if (!ImageValidator.CheckImageFormat(postedFile.FileName)) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } imageUrl = DropboxUploader.DropboxShareFile(postedFile.InputStream, postedFile.FileName); imageUrl = imageUrl.Substring(0, imageUrl.Length - 5); this.repository.UpdateImageUrl(sessionKey, imageUrl); result = Request.CreateResponse(HttpStatusCode.OK); } else { result = Request.CreateResponse(HttpStatusCode.BadRequest); } return(result); }
public async Task <HttpResponseMessage> Post(string sessionKey) { string folderName = @"Uploads"; string PATH = HttpContext.Current.Server.MapPath("~/" + folderName); string rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty); if (Request.Content.IsMimeMultipartContent()) { var streamProvider = new MultipartFormDataStreamProvider(PATH); try { // Read the form data. await Request.Content.ReadAsMultipartAsync(streamProvider); IQueryable <User> users = this.userRepository.GetAll(); var result = from u in users where u.SessionKey == sessionKey select u; User dbUser = result.FirstOrDefault(); db.Set <User>().Attach(dbUser); var uploader = new DropboxUploader(); var avatarUrl = ""; foreach (MultipartFileData file in streamProvider.FileData) { string fileName = file.LocalFileName; var url = uploader.UploadFileToDropBox(fileName.Trim(), file.Headers.ContentDisposition.FileName.Replace("\"", "")); avatarUrl = url; break; } dbUser.Avatar = avatarUrl; db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, dbUser)); } catch (System.Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e)); } } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted")); } }
public HttpResponseMessage PostProfileImage() { HttpResponseMessage result = null; var httpRequest = HttpContext.Current.Request; if (httpRequest.Files.Count > 0) { var docfiles = new List <string>(); foreach (string file in httpRequest.Files) { var postedFile = httpRequest.Files[file]; docfiles.Add(DropboxUploader.DropboxShareFile(postedFile.InputStream, postedFile.FileName)); } result = Request.CreateResponse(HttpStatusCode.Created, docfiles); } else { result = Request.CreateResponse(HttpStatusCode.BadRequest); } return(result); }