コード例 #1
0
        public async Task <MessageEntity> FileSave()
        {
            var    files     = Request.Form.Files;
            long   size      = files.Sum(f => f.Length);
            string fileName  = Request.Form["filename"];
            int    fileIndex = 0;

            int.TryParse(Request.Form["fileindex"], out fileIndex);
            //LogUtil.Debug($"FileSave开始执行获取数据:{fileIndex}_{size}");
            MessageEntity message = new MessageEntity();

            if (size <= 0 || string.IsNullOrEmpty(fileName))
            {
                message.Code = -1;
                message.Msg  = "文件上传失败";
                return(message);
            }

            if (!_cache.Exists(fileName))
            {
                message.Code = -1;
                message.Msg  = "请重新请求上传文件";
                return(message);
            }

            long   fileSize     = 0;
            string filePath     = $".{Appsettings.app(new string[] { "TestFileHandle", "FilePath" })}{DateTime.Now.ToString("yyyy-MM-dd")}/{fileName}";
            string saveFileName = $"{fileName}_{fileIndex}";
            string dirPath      = Path.Combine(filePath, saveFileName);

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

            foreach (var file in files)
            {
                //如果有文件
                if (file.Length > 0)
                {
                    fileSize = 0;
                    fileSize = file.Length;

                    using (var stream = new FileStream(dirPath, FileMode.OpenOrCreate))
                    {
                        await file.CopyToAsync(stream);
                    }
                }
            }

            message.Code = 0;
            message.Msg  = "";
            return(message);
        }