Example #1
0
        public async Task <HttpResponseMessage> Post()
        {
            try
            {
                string log_file_path = HttpContext.Current.Server.MapPath("~/Logs/UploadLog.txt");
                File.AppendAllText(log_file_path, "---FileUploadingStarted---" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + Environment.NewLine);
                if (!Request.Content.IsMimeMultipartContent())
                {
                    File.AppendAllText(log_file_path, "---NoFileFound---" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + Environment.NewLine);

                    File.AppendAllText(log_file_path, "---UnsupportedFormat---" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + Environment.NewLine); throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }

                var files      = HttpContext.Current.Request.Files;
                var uploadPath = HttpContext.Current.Server.MapPath("~/Images/AppImages");
                var multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(uploadPath);

                File.AppendAllText(log_file_path, "---FileUploaded " + uploadPath + "---" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + Environment.NewLine);

                File.AppendAllText(log_file_path, "---FileUploaded " + uploadPath + "---" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + Environment.NewLine);

                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                File.AppendAllText(log_file_path, "---FileUploadedEnded" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + Environment.NewLine);
                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotImplemented)
                {
                    Content = new StringContent(e.Message)
                });
            }
        }
        public async Task <HttpResponseMessage> Post(string identifier)
        {
            try
            {
                string clientAddress = HttpContext.Current.Request.UserHostAddress;
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }
                //var fileNames = _blobStorageService.GetFileNames("0ba78538-af43-9802-249e-f489178a7bea");
                //Save To this server location
                var    uploadPath = HttpContext.Current.Server.MapPath("~/Uploads");
                string subPath    = "ImagesPath"; // your code goes here

                bool exists = System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(subPath));

                if (!exists)
                {
                    System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(subPath));
                }
                //Save file via CustomUploadMultipartFormProvider
                var multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(Path.GetTempPath());

                var provider = new MultipartFormDataStreamProvider(Path.GetTempPath());

                // Read the form data.
                await Request.Content.ReadAsMultipartAsync(provider);

                foreach (var fileData in provider.FileData)
                {
                    string fileName = fileData.Headers.ContentDisposition.FileName;
                    if (fileName.StartsWith("\"") && fileName.EndsWith("\""))
                    {
                        fileName = fileName.Trim('"');
                    }
                    if (fileName.Contains(@"/") || fileName.Contains(@"\"))
                    {
                        fileName = Path.GetFileName(fileName);
                    }
                    using (var filestream = File.OpenRead(fileData.LocalFileName))
                    {
                        _blobStorageService.UploadFromStreamAsync(fileName, filestream, identifier);
                    }
                    File.Delete(fileData.LocalFileName);
                }

                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotImplemented)
                {
                    Content = new StringContent(e.Message)
                });
            }
        }
        public async Task <HttpResponseMessage> Post(string extension, string EventDescription, string Folder_id, string intSchool_id)
        {
            try
            {
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }

                //Save To this server location
                var uploadPath = HttpContext.Current.Server.MapPath("~/image");
                //HttpContext.Current.Server.MapPath("~/image");
                string path = uploadPath;
                //The reason we not use the default MultipartFormDataStreamProvider is because
                //the saved file name is look weird, not believe me? uncomment below and try out,
                //the odd file name is designed for security reason -_-'.
                //var streamProvider = new MultipartFormDataStreamProvider(uploadPath);

                //Save file via CustomUploadMultipartFormProvider
                var multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(uploadPath, extension);

                // Read the MIME multipart asynchronously
                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                // Show all the key-value pairs.
                foreach (var key in multipartFormDataStreamProvider.FormData.AllKeys)
                {
                    foreach (var val in multipartFormDataStreamProvider.FormData.GetValues(key))
                    {
                        Console.WriteLine(string.Format("{0}: {1}", key, val));
                    }
                }


                //In Case you want to get the files name
                //string localFileName = multipartFormDataStreamProvider
                //    .FileData.Select(multiPartData => multiPartData.LocalFileName).FirstOrDefault();

                DataSet ds = record.GalleryDetail(extension, EventDescription, Folder_id);
                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotImplemented)
                {
                    Content = new StringContent(e.Message)
                });
            }
        }
        public async System.Threading.Tasks.Task <HttpResponseMessage> UpdateUserAsync()
        {
            string path = HttpContext.Current.Server.MapPath("~/Uploads");
            var    multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(path);

            try
            {
                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                List <KeyValuePair <string, string> > formValues = FormUtlities.ParseFormKeys(multipartFormDataStreamProvider);
                User          User  = (User)HttpContext.Current.Session["currUser"];
                List <string> paths = FormUtlities.filePaths(multipartFormDataStreamProvider);//need to insert to the db all images path
                User.Profileimage = paths.FirstOrDefault();
                return(Request.CreateResponse(HttpStatusCode.OK, Update(User)));
            }
            catch (System.Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Error while trying to upload files!"));
            }
        }
        public async System.Threading.Tasks.Task <HttpResponseMessage> UpdateCompnayAsync()
        {
            string path = HttpContext.Current.Server.MapPath("~/Uploads");
            var    multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(path);

            try
            {
                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                List <KeyValuePair <string, string> > formValues = FormUtlities.ParseFormKeys(multipartFormDataStreamProvider);
                //var CompanyString = formValues.Find(el => el.Key.Equals("company")).Value;
                Company       Company = (Company)HttpContext.Current.Session["currCompany"];
                List <string> paths   = FormUtlities.filePaths(multipartFormDataStreamProvider);//need to insert to the db all images path
                Company.LogoUrl = paths.FirstOrDefault();
                return(Request.CreateResponse(Update(Company)));
            }
            catch (System.Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Error while trying to upload files!"));
            }
        }
        public async System.Threading.Tasks.Task <HttpResponseMessage> AddStandAsync()
        {
            string path = HttpContext.Current.Server.MapPath("~/Uploads");
            var    multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(path);

            try
            {
                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                List <KeyValuePair <string, string> > formValues = FormUtlities.ParseFormKeys(multipartFormDataStreamProvider);
                var           workspaceString = formValues.Find(el => el.Key.Equals("stand")).Value;
                Stand         Stand           = JsonConvert.DeserializeObject <Stand>(workspaceString);
                List <string> paths           = FormUtlities.filePaths(multipartFormDataStreamProvider);//need to insert to the db all images path
                Stand.Images = paths;
                return(Request.CreateResponse(HttpStatusCode.OK, AddStand(Stand)));
            }
            catch (System.Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Error while trying to upload files!"));
            }
        }
        public async Task <HttpResponseMessage> Post(string command, string vchProfile, string intschool_id, string intAcademic_id, string intUser_id)
        {
            try
            {
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }
                var uploadPath = HttpContext.Current.Server.MapPath("~/image");
                //HttpContext.Current.Server.MapPath("~/image");
                string path = uploadPath;
                var    multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(uploadPath, vchProfile);

                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                // Show all the key-value pairs.
                foreach (var key in multipartFormDataStreamProvider.FormData.AllKeys)
                {
                    foreach (var val in multipartFormDataStreamProvider.FormData.GetValues(key))
                    {
                        Console.WriteLine(string.Format("{0}: {1}", key, val));
                    }
                }

                Profile profile = new Profile();
                profile.intAcademic_id = Convert.ToInt32(intAcademic_id);
                profile.intschool_id   = Convert.ToInt32(intschool_id);
                profile.intUser_id     = Convert.ToInt32(intUser_id);
                profile.vchProfile     = vchProfile;
                DataSet ds = record.ProfileDetails(command, profile);
                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotImplemented)
                {
                    Content = new StringContent(e.Message)
                });
            }
        }
        public async Task <HttpResponseMessage> Post(string extension)
        {
            try
            {
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }

                //Save To this server location
                var uploadPath = HttpContext.Current.Server.MapPath("~/image");
                // HttpContext.Current.Server.MapPath("~/image");
                string path = uploadPath;

                var multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(uploadPath, extension);

                // Read the MIME multipart asynchronously
                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                // Show all the key-value pairs.
                foreach (var key in multipartFormDataStreamProvider.FormData.AllKeys)
                {
                    foreach (var val in multipartFormDataStreamProvider.FormData.GetValues(key))
                    {
                        Console.WriteLine(string.Format("{0}: {1}", key, val));
                    }
                }

                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotImplemented)
                {
                    Content = new StringContent(e.Message)
                });
            }
        }
        public async Task <IlanResimlerResponse> Post()
        {
            // Dictionary<string, object> dict = new Dictionary<string, object>();
            IlanResimlerRequest request = new IlanResimlerRequest();
            var httpRequest             = HttpContext.Current.Request;

            try
            {
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }

                //Save To this server location
                var uploadPath = HttpContext.Current.Server.MapPath("~/Userimage");
                //The reason we not use the default MultipartFormDataStreamProvider is because
                //the saved file name is look weird, not believe me? uncomment below and try out,
                //the odd file name is designed for security reason -_-'.
                //var streamProvider = new MultipartFormDataStreamProvider(uploadPath);

                //Save file via CustomUploadMultipartFormProvider
                var        multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(uploadPath);
                FileResult fl = new FileResult()
                {
                    FileNames        = multipartFormDataStreamProvider.FileData.Select(entry => entry.LocalFileName),
                    Names            = multipartFormDataStreamProvider.FileData.Select(entry => entry.Headers.ContentDisposition.FileName),
                    ContentTypes     = multipartFormDataStreamProvider.FileData.Select(entry => entry.Headers.ContentType.MediaType),
                    Description      = multipartFormDataStreamProvider.FormData["description"],
                    CreatedTimestamp = DateTime.UtcNow,
                    UpdatedTimestamp = DateTime.UtcNow,
                    DownloadLink     = "TODO, will implement when file is persisited"
                };
                // Read the MIME multipart asynchronously
                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                // Show all the key-value pairs.
                foreach (var key in multipartFormDataStreamProvider.FormData.AllKeys)
                {
                    foreach (var val in multipartFormDataStreamProvider.FormData.GetValues(key))
                    {
                        if (key == "id")
                        {
                            request.IlanId = Convert.ToInt32(val);
                        }
                        // Debug.WriteLine(string.Format("{0}: {1}", key, val));
                    }
                }
                List <string> list = new List <string>();
                foreach (MultipartFileData file in multipartFormDataStreamProvider.FileData)
                {
                    string fileName = file.Headers.ContentDisposition.FileName;
                    if (fileName.StartsWith("\"") && fileName.EndsWith("\""))
                    {
                        fileName = fileName.Trim('"');
                        ImagesProses.ResimBoyutlandir(fileName, 1200, 800);
                    }

                    list.Add(fileName);
                }

                //In Case you want to get the files name
                //string localFileName = multipartFormDataStreamProvider
                //    .FileData.Select(multiPartData => multiPartData.LocalFileName).FirstOrDefault();
                //IlanResimlerRequest request2 = new IlanResimlerRequest();
                //foreach (var item in request.Resimler)
                //{
                //    request2.IlanId = request.IlanId;
                //    request2.Resim = item;
                //    return _ilanResimlerEngine.CreateAsync(request2);

                //}
                request.Resimler = list;
                return(await _ilanResimlerEngine.CreateAsync(request));

                // return new  HttpResponseMessage(HttpStatusCode.OK);
            }
            catch (Exception e)
            {
                new HttpResponseMessage(HttpStatusCode.NotImplemented)
                {
                    Content = new StringContent(e.Message)
                };
                return(null);
            }
        }
        public async Task <HttpResponseMessage> Post(int imageType)
        {
            try
            {
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }

                //Save To this server location
                var uploadPath = "";
                switch (imageType)
                {
                case (int)ImageType.Blog:
                    uploadPath = Contants.BlogsUrl;
                    break;

                case (int)ImageType.Product:
                    uploadPath = Contants.ProductsUrl;
                    break;

                case (int)ImageType.Sample:
                    uploadPath = Contants.SamplesUrl;
                    break;

                default:
                    uploadPath = "~/Uploads";
                    break;
                }
                uploadPath = HttpContext.Current.Server.MapPath(uploadPath);
                //The reason we not use the default MultipartFormDataStreamProvider is because
                //the saved file name is look weird, not believe me? uncomment below and try out,
                //the odd file name is designed for security reason -_-'.
                //var streamProvider = new MultipartFormDataStreamProvider(uploadPath);

                //Save file via CustomUploadMultipartFormProvider
                var multipartFormDataStreamProvider = new CustomUploadMultipartFormProvider(uploadPath);

                // Read the MIME multipart asynchronously
                await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

                string fileName = "";
                foreach (var fileData in multipartFormDataStreamProvider.FileData)
                {
                    fileName = fileData.Headers.ContentDisposition.FileName;
                    if (fileName.StartsWith("\"") && fileName.EndsWith("\""))
                    {
                        fileName = fileName.Trim('"');
                        switch (imageType)
                        {
                        case (int)ImageType.Blog:
                            uploadPath = Contants.BlogsUrl.Trim('~');
                            break;

                        case (int)ImageType.Product:
                            uploadPath = Contants.ProductsUrl.Trim('~');
                            break;

                        case (int)ImageType.Sample:
                            uploadPath = Contants.SamplesUrl.Trim('~');
                            break;

                        default:
                            uploadPath = "/Uploads";
                            break;
                        }

                        fileName = string.Format("{0}/{1}", uploadPath, fileName);
                    }
                    //if (fileName.Contains(@"/") || fileName.Contains(@"\"))
                    //{
                    //    fileName = Path.GetFileName(fileName);
                    //}
                }

                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(fileName)
                });
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.NotImplemented)
                {
                    Content = new StringContent(e.Message)
                });
            }
        }