欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#?Web實現(xiàn)文件上傳的示例詳解

 更新時間:2023年11月09日 11:16:18   作者:大陽光男孩  
這篇文章主要為大家詳細(xì)介紹了C#?Web實現(xiàn)文件上傳的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1.第一種上傳方式,基本通用于.net所有的框架

        [HttpPost]
        [Route("Common/uploadFile1")]
        public string uploads()
        {
            HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//獲取傳統(tǒng)context
            HttpRequestBase request = context.Request;//定義傳統(tǒng)request對象
            HttpFileCollectionBase files = request.Files;
            string fileSuffix = Path.GetExtension(files[0].FileName).ToLower();
            string fileId = Guid.NewGuid().ToString();
            string dateKey = DateTime.Now.ToString("yyyyMMdd");
            string savaPath, uri;     
            uri = @"/fileData/rest/" + dateKey + @"/";
            savaPath = request.MapPath(uri);
            if (!Directory.Exists(savaPath))
            {
                Directory.CreateDirectory(savaPath);
            }
            try
            {
                files[0].SaveAs(savaPath + fileId + fileSuffix);
                return uri + fileId + fileSuffix;
            }catch (Exception ex){
                return ex.Message;
            }
        }

2.WebAPI可以用這個來,但是在低一點的版本沒有IFormFile 這個對象

        /// <summary>
        /// 通用文件上傳接口
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("Common/uploadFile2")]
        public  async Task<Axios<string>>  upload(IFormFile file)
        {
            string fileSuffix = Path.GetExtension(file.FileName).ToLower();
            string fileId = Guid.NewGuid().ToString();
            string dateKey = DateTime.Now.ToString("yyyyMMdd");
            string savaPath,uri;
            uri = @"/fileData/rest/"  + dateKey  + @"/";
            savaPath =  Path.Combine(Directory.GetCurrentDirectory(), uri);
            if (!Directory.Exists(savaPath)){Directory.CreateDirectory(savaPath);}
            //創(chuàng)建特定名稱的文件流
            await using var stream = new FileStream(savaPath + fileId + fileSuffix, FileMode.Create);
            try
            {
                //上傳文件
                await file.CopyToAsync(stream);
                stream.Flush();
                return Axios<string>.ok(uri + fileId + fileSuffix);
            } catch (Exception ex)  {
                //上傳異常處理 
                return Axios<string>.fail(ex.Message);
            }

3.上傳方式,可以用于.netCore MVC方式的文件上傳

        [HttpPost]
        public JsonResult uploadX(HttpPostedFileBase file)
        {
            String suffix = file.FileName.Substring(file.FileName.LastIndexOf(".", StringComparison.Ordinal));
            string fileName = Guid.NewGuid().ToString().Replace("-", "") + suffix;
            string uri = string.Format("{0}/{1}/{2}/", "fileData", "rest", DateTime.Now.Year+""+DateTime.Now.Month +""+ DateTime.Now.Day);
            string filePath = Server.MapPath(string.Format("~/{0}",uri));
            if (!Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            file.SaveAs(Path.Combine(filePath, fileName));
            return Json(uri + fileName);
        }

注:以上就是三種文件上傳的方式,可以采用第一種方式,兼容性好

到此這篇關(guān)于C# Web實現(xiàn)文件上傳的示例詳解的文章就介紹到這了,更多相關(guān)C#文件上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#搜索TreeView子節(jié)點,保留父節(jié)點的方法

    C#搜索TreeView子節(jié)點,保留父節(jié)點的方法

    這篇文章主要介紹了C#搜索TreeView子節(jié)點,保留父節(jié)點的方法,實例分析了C#操作TreeView節(jié)點的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • 淺析C#更改令牌ChangeToken

    淺析C#更改令牌ChangeToken

    這篇文章主要介紹了C#更改令牌ChangeToken,文中運用大量代碼講解的非常詳細(xì),感興趣的小伙伴一起來看看這篇文章吧
    2021-09-09
  • C#中的==運算符

    C#中的==運算符

    這篇文章主要介紹了C#中的==運算符,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • Unity3D使用Shader實現(xiàn)腐蝕消失

    Unity3D使用Shader實現(xiàn)腐蝕消失

    這篇文章主要為大家詳細(xì)介紹了Unity3D使用Shader實現(xiàn)腐蝕消失,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • c# 多線程處理多個數(shù)據(jù)的方法

    c# 多線程處理多個數(shù)據(jù)的方法

    這篇文章主要介紹了c# 多線程處理多個數(shù)據(jù)的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#中按指定質(zhì)量保存圖片的實例代碼

    C#中按指定質(zhì)量保存圖片的實例代碼

    這篇文章主要介紹了C#中按指定質(zhì)量保存圖片的實例代碼,有需要的朋友可以參考一下
    2013-12-12
  • c# 模擬線性回歸的示例

    c# 模擬線性回歸的示例

    這篇文章主要介紹了c# 模擬線性回歸的示例,幫助大家利用c#進行機器學(xué)習(xí),感興趣的朋友可以了解下
    2020-10-10
  • 基于C#實現(xiàn)PDF文件合并工具

    基于C#實現(xiàn)PDF文件合并工具

    這篇文章主要為大家詳細(xì)介紹了如何基于C#實現(xiàn)一個簡單的PDF文件合并工具,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • C#用NPOI導(dǎo)出導(dǎo)入Excel幫助類

    C#用NPOI導(dǎo)出導(dǎo)入Excel幫助類

    這篇文章主要為大家詳細(xì)介紹了C#?NPOI導(dǎo)出導(dǎo)入Excel幫助類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#的3DES加密解密算法實例代碼

    C#的3DES加密解密算法實例代碼

    這篇文章主要介紹了C#的3DES加密解密算法實例代碼,有需要的朋友可以參考一下
    2013-11-11

最新評論