Example #1
0
        public HttpResponseMessage UploadFile(bool overWrite)
        {
            HttpResponseMessage        response             = Request.CreateResponse();
            List <FileResponseMessage> fileResponseMessages = new List <FileResponseMessage>();
            FileResponseMessage        fileResponseMessage  = new FileResponseMessage {
                IsExists = false
            };

            try
            {
                if (!Request.Content.IsMimeMultipartContent())
                {
                    fileResponseMessage.Content = "Upload data request is not valid !";
                    fileResponseMessages.Add(fileResponseMessage);
                    response = Request.CreateResponse(HttpStatusCode.UnsupportedMediaType, fileResponseMessages, new MediaTypeHeaderValue("text/json"));
                }

                else
                {
                    response = ProcessUploadRequest(overWrite);
                }
            }
            catch (Exception exception)
            {
                // Log exception and return gracefully
                fileResponseMessage = new FileResponseMessage {
                    IsExists = false
                };
                fileResponseMessage.Content = ProcessException(exception);
                fileResponseMessages.Add(fileResponseMessage);
                response = Request.CreateResponse(HttpStatusCode.InternalServerError, fileResponseMessages, new MediaTypeHeaderValue("text/json"));
            }
            return(response);
        }
Example #2
0
        /// <summary>
        /// Process upload request in the server
        /// </summary>
        /// <param name="overWrite">An indicator to overwrite a file if it exist in the server.</param>
        /// <returns>List of message object</returns>
        private HttpResponseMessage ProcessUploadRequest(bool overWrite)
        {
            List <FileResponseMessage> fileResponseMessages = new List <FileResponseMessage>();

            HttpResponseMessage response            = null;
            FileResponseMessage fileResponseMessage = new FileResponseMessage();

            if (this.GetRequestContentLength() > WebApiApplication.MaxRequestLength)
            {
                int maxSize = Convert.ToInt32(Math.Round(WebApiApplication.MaxRequestLength / 1024.0, 1));
                fileResponseMessage.Content = string.Format("Upload data content size is beyond maximum size({0}MB) allowed by the server !",
                                                            maxSize < 1 ? 1 : maxSize);
                fileResponseMessages.Add(fileResponseMessage);
                response = Request.CreateResponse(HttpStatusCode.BadRequest, fileResponseMessages, new MediaTypeHeaderValue("text/json"));
            }
            else
            {
                try
                {
                    HttpRequestBase        request    = this.Request();
                    string                 uploadPath = this.GetUploadPath();
                    HttpFileCollectionBase files      = request.Files;

                    foreach (string file in files)
                    {
                        string filePath = Path.Combine(uploadPath, file);
                        fileResponseMessage = new FileResponseMessage();

                        if (!overWrite && File.Exists(filePath))
                        {
                            fileResponseMessage.Content  = string.Format("{0} file already exist !", file);
                            fileResponseMessage.IsExists = false;
                        }
                        else
                        {
                            if (files[file].WriteStream(filePath))
                            {
                                fileResponseMessage.Content  = string.Format("{0} file uploaded successfully !", file);
                                fileResponseMessage.IsExists = true;
                            }
                            else
                            {
                                fileResponseMessage.Content  = string.Format("Can't upload {0} file !", file);
                                fileResponseMessage.IsExists = false;
                            }
                        }
                        fileResponseMessages.Add(fileResponseMessage);
                    }
                    if (fileResponseMessages.Count == 0)
                    {
                        fileResponseMessage         = new FileResponseMessage();
                        fileResponseMessage.Content = "No upload file(s) found !";
                        fileResponseMessages.Add(fileResponseMessage);
                        response = Request.CreateResponse(HttpStatusCode.BadRequest, fileResponseMessages, new MediaTypeHeaderValue("text/json"));
                    }
                    else
                    {
                        response = Request.CreateResponse(HttpStatusCode.OK, fileResponseMessages, new MediaTypeHeaderValue("text/json"));
                    }
                }
                catch (Exception exception)
                {
                    throw exception;
                }
            }
            return(response);
        }