Beispiel #1
0
        /// <summary>
        /// クライアントからアップロードされたファイルをサーバに保存します。
        /// </summary>
        /// <param name="httpContext">HTTPコンテキスト</param>
        /// <param name="fileContext">アップロードされたファイル</param>
        /// <param name="screenId">画面ID</param>
        /// <param name="itemId">項目ID</param>
        /// <returns>ファイル名</returns>
        public string SaveUploadedFileToServer(HttpContextBase httpContext, HttpPostedFileBase fileContext, string screenId, string itemId)
        {
            if (fileContext == null)
            {
                throw new ArgumentException(nameof(fileContext));
            }
            var fileInfo = businessService.CreateUploadFileInfo(httpContext, screenId, itemId, Path.GetExtension(fileContext.FileName));

            using (var fileStream = File.Create(fileInfo.FullName))
            {
                fileContext.InputStream.CopyTo(fileStream);
            }

            return(fileInfo.Name);
        }
        public ActionResult UploadFile(FileViewModel model)
        {
            // ファイルが既にアップロード済みの場合、使いまわす
            if (!string.IsNullOrEmpty(model.FileName))
            {
                var fileInfo = businessService.CreateUploadFileInfo(HttpContext, model.FileName);
                if (fileInfo.Exists)
                {
                    return(CreateSuccessResult(model.FileName));
                }
            }

            // アップロードされたファイルをサーバに保存する
            var fileName = fileService.SaveUploadedFileToServer(HttpContext, Request.Files[0], model.ScreenId, model.ItemId);

            return(CreateSuccessResult(fileName));
        }