简单的文件上传与下载

多文件上传:

/// <summary>
        /// 文件保存
        /// </summary>
        /// <param name="Description">文件描述</param>
        /// <param name="refTable">文件对应的业务表</param>
        /// <param name="RefRecordID">文件对应的业务表主键</param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/UploadAPI/UploadFile/")]
        public bool UploadFile(string refTable, string RefRecordID,string Description = null)
        {
            bool uploadResult = false;
            string FileEextension = string.Empty;//获取文件后缀名
            string Filename = string.Empty;//用于新增文件名
            string strPath = string.Empty;
            UploadService ser = new UploadService();
            HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
            HttpPostedFile file;
            IList<VSAADocument> docList = new List<VSAADocument>();
            var userid = VSAAUserIdentity.GetUserInfo().ID;//登陆者

            string[] Descriptions;
            if (!Description.IsNullOrEmptyOrWhiteSpace())
            {
                Descriptions = Description.Split('#');//获得图片描述的文本框字符串数组,为对应的图片的描述
            }
            else
            {
                Descriptions = new string[0];
            }

            if (System.Web.HttpContext.Current.Request.Files.Count > 0)
            {
                for (int i = 0; i < System.Web.HttpContext.Current.Request.Files.Count; i++)
                {
                    FileEextension = Path.GetExtension(files[i].FileName).ToLower();//获取文件后缀名
                    //判断文件类型存入不同文件夹
                    if (FileEextension == ".doc" || FileEextension == ".docx")
                    {
                        Filename = "word\\";
                    }
                    else if (FileEextension == ".xls" || FileEextension == ".xlsx")
                    {
                        Filename = "Excel\\";
                    }
                    else if (FileEextension == ".ppt" || FileEextension == ".pptx")
                    {
                        Filename = "PPT\\";
                    }
                    else if (FileEextension == ".pdf")
                    {
                        Filename = "pdf\\";
                    }
                    else if (FileEextension == ".jpg" || FileEextension == ".jpeg" || FileEextension == ".png" || FileEextension == ".gif")
                    {
                        Filename = "image\\";
                    }
                    else if ("(.mp4)|(.avi)|(.flv)|(.rmvb)|(.wmv)".Contains(FileEextension))
                    {
                        Filename = "vedio\\";
                    }
                    else
                    {
                        Filename = "Other\\";
                    }
                    strPath = UploadPath + Filename;
                    if (Directory.Exists(strPath) == false)
                    {
                        Directory.CreateDirectory(strPath);
                    }

                    VSAADocument docModel = new VSAADocument();
                    docModel.DocumentID = Guid.NewGuid().ToString();
                    docModel.RefTable = refTable;
                    docModel.RefRecordID = RefRecordID;
                    docModel.DocumentName = System.Web.HttpContext.Current.Request.Files[i].FileName;
                    docModel.DocumentPath = strPath + docModel.DocumentID + FileEextension;
                    docModel.FileSize = Math.Round(Convert.ToDecimal(System.Web.HttpContext.Current.Request.Files[i].ContentLength / 1024 / 1024), 2, MidpointRounding.AwayFromZero);
                    docModel.FileType = FileEextension;
                    if (Descriptions.Length > 0 && !string.IsNullOrEmpty(Descriptions[i]))
                    {
                        docModel.Description = Descriptions[i];
                    }
                    if (!userid.IsNullOrEmptyOrWhiteSpace())
                    {
                        docModel.Userid = userid;
                    }
                    docList.Add(docModel);
                    System.Web.HttpContext.Current.Request.Files[i].SaveAs(@strPath + docModel.DocumentID + FileEextension);
                }
                uploadResult = ser.Upload(docList);//文件保存到数据库
            }
            else
            {
                uploadResult = true;
            }
            return uploadResult;
        }

根据文件路径下载文件,并更改文件名:

/// <summary>
        /// 下载
        /// </summary>
        /// <param name="FilePath"></param>
        /// <param name="documentId"></param>
        /// <returns></returns>
        [Route("api/UploadAPI/DownloadFile/")]
        public HttpResponseMessage DownloadFile(string FilePath,string documentId)
        {
            try
            {
                UploadService ser = new UploadService();
                if (FilePath.IsNullOrEmptyOrWhiteSpace() || documentId.IsNullOrEmptyOrWhiteSpace())
                {
                    return new HttpResponseMessage(HttpStatusCode.NotFound);
                }
                string FileName = ser.GetDocData(documentId).DocumentName;
                var stream = new FileStream(FilePath, FileMode.Open);
                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
                response.Content = new StreamContent(stream);
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = FileName
                };
                return response;
            }
            catch
            {
                return new HttpResponseMessage(HttpStatusCode.NoContent);
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值