コード例 #1
0
        public async Task <FileBlobModel> Post()
        {
            if (!this.Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            // Temp storage location for File Chunks
            MultipartMemoryStreamProvider provider = new MultipartMemoryStreamProvider();

            // Read all contents of multipart message into MultipartMemoryStreamProvider.
            await Request.Content.ReadAsMultipartAsync(provider);

            var content = provider.Contents[0];

            if (content == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var upload = await GetFileUpload(content);

            if (upload == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var blob = _manager.UploadFile(upload);

            if (blob != null)
            {
                return(blob.ToSerial());
            }

            return(new FileBlobModel()
            {
                //FileID = 0,
                Code = upload.UploadID,
                FileName = upload.FileName,
                Size = _manager.GetChunksUploadSize(upload.UploadID)
            });
            //return Request.CreateResponse(HttpStatusCode.OK);
        }