Ejemplo n.º 1
0
        public HttpResponseMessage SaveFile()
        {
            //Create HTTP Response.
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);

            //Check if Request contains File.
            if (HttpContext.Current.Request.Files.Count == 0)
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            //Read the File data from Request.Form collection.
            HttpPostedFile postedFile = HttpContext.Current.Request.Files[0];

            //Convert the File data to Byte Array.
            byte[] bytes;
            using (BinaryReader br = new BinaryReader(postedFile.InputStream))
            {
                bytes = br.ReadBytes(postedFile.ContentLength);
            }

            //Insert the File to Database Table.
            UploadDownloadEntities entities = new UploadDownloadEntities();

            Models.File file = new Models.File
            {
                Name        = Path.GetFileName(postedFile.FileName),
                ContentType = postedFile.ContentType,
                Data        = bytes
            };
            entities.Files.Add(file);
            entities.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK, new { id = file.id, Name = file.Name }));
        }
Ejemplo n.º 2
0
        public HttpResponseMessage GetFiles()
        {
            UploadDownloadEntities entities = new UploadDownloadEntities();
            var files = from file in entities.Files
                        select new { id = file.id, Name = file.Name };

            return(Request.CreateResponse(HttpStatusCode.OK, files));
        }
Ejemplo n.º 3
0
        public HttpResponseMessage GetFile(int fileId)
        {
            //Create HTTP Response.
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);

            //Fetch the File data from Database.
            UploadDownloadEntities entities = new UploadDownloadEntities();

            Models.File file = entities.Files.ToList().Find(p => p.id == fileId);

            //Set the Response Content.
            response.Content = new ByteArrayContent(file.Data);

            //Set the Response Content Length.
            response.Content.Headers.ContentLength = file.Data.LongLength;

            //Set the Content Disposition Header Value and FileName.
            response.Content.Headers.ContentDisposition          = new ContentDispositionHeaderValue("attachment");
            response.Content.Headers.ContentDisposition.FileName = file.Name;

            //Set the File Content Type.
            response.Content.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType);
            return(response);
        }