Beispiel #1
0
        public async Task <IEnumerable <FileGroupItemsViewModel> > FileGroupItemsAdd(HttpRequestMessage request)
        {
            var provider = new PhotoMultipartFormDataStreamProvider(_uploadPath);
            await request.Content.ReadAsMultipartAsync(provider);

            var bodylength = request.Content.Headers.ContentLength;

            return(_fileUploadService.ProcessDocs(provider.FileData, Convert.ToInt32(bodylength)).Select(x => x.ToViewModel()).ToList());
        }
Beispiel #2
0
        public async Task <IHttpActionResult> PostUploadProfilePicture()
        {
            if (Request.Content.IsMimeMultipartContent("form-data"))
            {
                try
                {
                    User user = base.CurrentUser;
                    if (user != null)
                    {
                        string appPath            = ConfigurationManager.AppSettings["ImageUrl"];
                        string fileName           = DateTime.Now.Ticks.ToString() + ".jpeg";
                        string absoluteFolderPath = appPath + user.UserId;
                        string pathToFile         = absoluteFolderPath + "\\" + fileName;

                        if (!Directory.Exists(absoluteFolderPath))
                        {
                            Directory.CreateDirectory(absoluteFolderPath);
                        }

                        var provider = new PhotoMultipartFormDataStreamProvider(absoluteFolderPath, fileName);
                        await Request.Content.ReadAsMultipartAsync(provider);

                        using (var image = Image.FromFile(pathToFile))
                        {
                            var size     = image.Height >= image.Width ? image.Width : image.Height;
                            var paddingW = (image.Width - size) / 2;
                            var padding  = (image.Height - size) / 2;
                            using (var newImage = Crop(image, new Rectangle(paddingW, padding, image.Width - paddingW * 2, image.Height - padding * 2)))
                            {
                                newImage.Save(absoluteFolderPath + "\\thumb_" + fileName, ImageFormat.Jpeg);
                            }
                        }

                        user.Image           = user.UserId + "/thumb_" + fileName;
                        db.Entry(user).State = EntityState.Modified;
                        await db.SaveChangesAsync();

                        return(Ok());
                    }
                    else
                    {
                        return(BadRequest(Messages.UserNotFound));
                    }
                }
                catch (Exception ex)
                {
                    return(BadRequest(Messages.ErrorUploadingFile));
                }
            }
            else
            {
                return(BadRequest(Messages.NoFileContent));
            }
        }
Beispiel #3
0
        public async Task <HttpResponseMessage> Post()
        {
            var provider = new PhotoMultipartFormDataStreamProvider(Environment.CurrentDirectory);

            await this.Request.Content.ReadAsMultipartAsync(provider);

            var client      = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Specify values for optional parameters, as needed
            queryString["visualFeatures"] = "All";

            // Specify your subscription key
            queryString["subscription-key"] = "80f28591cb4c47f291b7fd401ff348f3";

            // Specify values for path parameters (shown as {...})
            var uri = "https://api.projectoxford.ai/vision/v1/analyses?" + queryString;


            HttpResponseMessage response;

            byte[] byteData = Encoding.UTF8.GetBytes("");
            foreach (var file in provider.FileData)
            {
                var fileInfo = new FileInfo(file.LocalFileName);
                var stream   = new StreamReader(file.LocalFileName);
                byteData = Encoding.UTF8.GetBytes(stream.ReadToEnd());
            }

            // Specify request body


            using (var content = new ByteArrayContent(byteData))
            {
                response = await client.PostAsync(uri, content);
            }

            if (response.Content != null)
            {
                var responseString = await response.Content.ReadAsStringAsync();

                return(this.Request.CreateResponse(HttpStatusCode.OK));
            }

            return(this.Request.CreateResponse(HttpStatusCode.NotFound));
        }
Beispiel #4
0
        public async Task <IEnumerable <Photo> > Add(HttpRequestMessage request)
        {
            var provider = new PhotoMultipartFormDataStreamProvider(this.workingFolder);

            await request.Content.ReadAsMultipartAsync(provider);

            var photos = new List <Photo>();

            foreach (var file in provider.FileData)
            {
                var fileInfo = new FileInfo(file.LocalFileName);

                photos.Add(new Photo
                {
                    Name     = fileInfo.Name,
                    Created  = fileInfo.CreationTime,
                    Modified = fileInfo.LastWriteTime,
                    Size     = fileInfo.Length / 1024
                });
            }

            return(photos);
        }
Beispiel #5
0
        public async Task AddPhoto(HttpRequestMessage request)
        {
            var mappedPath = HostingEnvironment.MapPath("~/Images");
            var currentUserId = User.Identity.GetUserId();
            var provider = new PhotoMultipartFormDataStreamProvider(mappedPath);
            var imageName = Guid.NewGuid().ToString();
            await request.Content.ReadAsMultipartAsync(provider);

            foreach (var file in provider.FileData)
            {
                var imagePath = Path.Combine(mappedPath, imageName + Path.GetExtension(file.LocalFileName));
                File.Move(file.LocalFileName, imagePath);

                var db = new ApplicationDbContext();
                db.Images.Add(new Image()
                {
                    FilePath = Path.Combine("Images", imageName + Path.GetExtension(file.LocalFileName)),
                    UserId = currentUserId,
                });

                db.SaveChanges();
            }
        }