ASP.NET Core 实现 简单文件服务器_love_pgme的博客-程序员秘密

技术标签: 文件服务器  ASP.NET Core  

 

首先新建一个ASP.NET Core项目,选择空的模板。

使用NuGet命令添加Microsoft.AspNetCore.StaticFiles引用:

Install-Package Microsoft.AspNetCore.StaticFiles

添加好引用以后,在Startup.cs中的Configure方法下添加如下代码:


        public void Configure(IApplicationBuilder app)
        {
            app.UseStaticFiles();//使用默认文件夹wwwroot

            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }

接着在wwwroot文件夹(没有的话可以自己新建一个文件夹,取名wwwroot)中添加一张图:NET-Core.png。

程序运行后访问http://localhost:*/NET-Core.png ,就会在页面上显示这张图片

如果不想使用默认wwwroot文件夹,可以使用StaticFileOptions来设置指定目录

具体代码如下:


        public void Configure(IApplicationBuilder app)
        {
            //更改默认文件夹 (StaticFileOptions方法)
            var staticfile = new StaticFileOptions();
            staticfile.FileProvider = new PhysicalFileProvider(@"C:\");//指定目录,这里指C盘,也可以是其他目录
         app.UseStaticFiles(staticfile);

            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }

然后在C盘新建一个readme.txt文件,在里面写入.net core, 

程序运行后访问: http://localhost:*/readme.txt,如下图所示:

成功浏览readme.txt文件

如果我们需要浏览所有文件夹及文件,就要用到UseDirectoryBrowser, 下面代码是浏览C盘的所有文件:

        public void ConfigureServices(IServiceCollection services)
        {
            //使用UseDirectoryBrowser ,需要在这里加入services.AddDirectoryBrowser();
            services.AddDirectoryBrowser();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app)
        {
            //app.UseStaticFiles();//使用默认文件夹wwwroot

            var dir = new DirectoryBrowserOptions();
            dir.FileProvider = new PhysicalFileProvider(@"C:\");
            app.UseDirectoryBrowser(dir);

            //更改默认文件夹 (StaticFileOptions方法)
            var staticfile = new StaticFileOptions();
            staticfile.FileProvider = new PhysicalFileProvider(@"C:\");//指定目录,这里指C盘,也可以是其他目录

            //手动设置MIME Type,或者设置一个默认值, 以解决某些文件MIME Type文件识别不到,出现404错误
            staticfile.ServeUnknownFileTypes = true;
            staticfile.DefaultContentType = "application/x-msdownload";//设置默认MIME Type
            var provider = new FileExtensionContentTypeProvider();//使用一组默认映射创建新的提供程序
            provider.Mappings.Add(".log", "text/plain");//手动设置对应MIME Type
            staticfile.ContentTypeProvider = provider; //将文件映射到内容类型

            app.UseStaticFiles(staticfile);

            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }

手动设置MIME Type 是为了防止有些文件MIME Type识别不出来 就会出现404错误。也可以给这些未识别的设置一个默认值解决

        设置好后,对于未识别的,默认为application/x-msdownload,浏览器会下载这些文件,这样.log就被手动设置为文本方式,浏览器会将其展示出来。这样我们也就实现了一个简单的文件服务器。

        如果想用手机查看电脑的图片或者视频等文件,则将程序加一句代码就可以实现了:

        在Program.cs中

public static void Main(string[] args)
      {
            var host = new WebHostBuilder()
              .UseKestrel()
              .UseContentRoot(Directory.GetCurrentDirectory())
              .UseIISIntegration()
              .UseUrls("http://*:5000") //加上这个就能通过http://ip5000访问
              .UseStartup<Startup>()
              .Build();

        host.Run();
      }

         这样在同一局域网内,在手机上使用浏览器访问http://ip:5000,就能访问电脑中C盘的文件了.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/love_pgme/article/details/88642216

智能推荐

Linux_修改jdk名字_祈遇&的博客-程序员秘密

1.虚拟机环境搭建1.1设定虚拟机网络子网IP:192.168.126.0 子网掩码:255.255.255.01.2默认网关展现网关IP:192.168.126.21.3DHCP设置起始IP地址:192.168.126.128 结束IP地址:192.168.126.254设置租用时间1.4Ip地址校验Dom命令:ipconfig 虚拟机IP地址检查LinuxIP:ip addr检查通信是否畅通:ping 192.168.126.1292.虚拟机网络模式说明2.1桥接模式

游戏风格化角色创建入门指南视频教程_云桥网络.的博客-程序员秘密

游戏风格化角色创建入门指南视频教程时间 33小时 包括项目文件 1920X1080 MP4 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕游戏中的风格化角色创建入门指南百度一下 云桥网络 平台huo取 教程!信息。教程33小时视频总数。132包括项目文件要求。你需要在你的电脑上安装Zbrush, Maya, Substance Painter, Marmoset Toolbag和Photoshop。你将学会什么?风格化的人物建模和雕刻。使高聚...

教你STM32做USB鼠标、键盘_stm32 usb键盘_small_planet的博客-程序员秘密

使用CubeMX软件傻瓜式的配置,一键生成USB的HID驱动。

MaxCompute常见错误汇总(更新ing)_fuxi task failed, taskpreopenerror_Mc顽固份子的博客-程序员秘密

点击查看全文从今天开始,小编会为大家陆续解读MaxCompute常见问题,帮助大家快速上手MaxCompute,玩转大数据计算平台,同时,也欢迎大家一起补充。十大常见错误码No1.FAILED: ODPS-0130131报错信息:FAILED: ODPS-0130131:[1,15] Table not f

燕山大学教务系统官网计算机学院,2021年燕山大学教务系统入口:https://jwc.ysu.edu.cn..._藥郎的博客-程序员秘密

第一章 总 则第一条 为尊重学生的学习意愿,满足学生个性发展的需要和特长的发挥,充分调动学生学习的积极性和主动性,根据《普通高等学校学生管理规定》(教育部令第41号),结合我校本科教学实际,特制定本管理办法。第二条 为充分发挥二级学院办学主体地位,转专业工作坚持公开、公平、公正、择优录取的原则,采取校院两级管理模式,按照学生自愿申请、学院组织考核、教务处审核备案的方式进行。第三条 各学院双...

Alpha 冲刺 (10/10)_didai4026的博客-程序员秘密

团队信息队名:爸爸饿了组长博客:here作业博客:here组员情况组员1(组长):王彬过去两天完成了哪些任务协助完成前端各个页面的整合协助解决前端操作逻辑存在的问题完成前端的美化,使UI风格靠近原型设计接下来的计划 &amp; 还剩下哪些任务Alpha阶段任务基本完成,开始准备考试有哪些收获、困难和疑问收获:将之前学到的安卓端UI美化技术运用到了实...

随便推点

最新版tiktok网页版X-bougs和_signature_A九三的博客-程序员秘密

声明:文章内容仅供学习参考,严禁用于商业用途,否则由此产生一切后果与作者无关,如有侵权请联系作者进行删除。前言:可知从5月份开始,抖音正式开放了web的接口,然后进行了一次又一次的风控升级,从最初的_signature 到增加滑块,然后再到现在的jsvm套一层混淆加上mstoken&amp;x-bougs等参数。通过分析发现国内部分接口只需要cookie,而不需要验签,当然这里的cookie就有多种办法可以获得,其中最简单的就是opencv识别过滑块的cookie。这里要分析的是tiktok,无需co.

硬件编解码(三)QuickSync_quicksync 能解码_NB_vol_1的博客-程序员秘密

QuickSync    QuickSync是Intel提供的硬件编解码器,详细的信息可以参考官方文档https://software.intel.com/en-us/media-sdk     为了加深对QuickSync的理解,下面介绍一个QuickSync编码器,下载地址: https://github.com/Intel-Media-SDK/samples

Java开源RSS组件包(Java Open Source RSS Lib Packages) http://www.javaeye.com/topic/38486_woshizoe的博客-程序员秘密

Java开源RSS组件包(Java Open Source RSS Lib Packages)    * RSSLibJRSSLibJ是一个专门读取和生成RSS的小巧实用的Java库,大小仅25k。    *  RSSLib4JRSSLib4J 是一套用于从RSS Feed解析和检索信息的Java API。它支持RSS version0.9x

CentOS裁剪_如何裁剪centos7_lqbz---的博客-程序员秘密

裁剪都基于CentOS6.3 64位操作,以下是自己总结出的裁剪步骤:

曲线的切线的相关问题_weixin_33782386的博客-程序员秘密

本专题主要从以下两个方面做以阐述:A、求曲线的切线类型1、在点处的切线\(\fbox{例1}\)如函数\(y=x^3\)在点\(A(1,1)\)处(或叙述为在\(x=1\)处)的切线方程为什么?思路:\(k=f'(1)=3\)+切点\(A(1,1)\),利用点斜式写出切线方程。\(\fbox{例2}\)直线\(y=x\)上的动点为\(P\),函数\(y=lnx\)上的动点是\(Q\)...

import caffe出错:libcaffe.so.1.0.0-rc3: undefined symbol: _ZN2cv8imencodeERKNSt7__cxx1112basi_北四环西路的博客-程序员秘密

参考论文:http://blog.csdn.net/qq_25295407/article/details/78564965libcaffe.so.1.0.0-rc3: undefined symbol: _ZN2cv8imencodeERKNSt7__cxx1112basi>>> importcaffeTraceback (most recent call last): 

推荐文章

热门文章

相关标签