Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (2)
接上篇 Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (1)
5. 添加目录浏览功能
打开Program.cs文件,在 app.UseStaticFiles();
之后加入一句 app.UseDirectoryBrowser();
就可以启动默认的目录浏览功能, 我们这里加入一点限制,只浏览Upload文件夹,并且把默认的界面英文改为中文,并且按修改时间逆序排序.
右键打开NuGet包管理,安装 AME.SortedDirectoryChs 包, 这是一个DirectoryBrowserFormatter,支持中文界面并按修改时间逆序排序,因为篇幅关系,就不贴源码了, 源码在文末项目内可找到.
文件头部加入引用
using Microsoft.Extensions.FileProviders;
using System.Text.Encodings.Web;
语句app.UseDirectoryBrowser();
修改为
var dir = Path.Combine(app.Environment.WebRootPath, "Upload");
if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
var opt = new DirectoryBrowserOptions
{
FileProvider = new PhysicalFileProvider(dir),
Formatter = new AME.HtmlDirectoryFormatterChsSorted(HtmlEncoder.Default),
RequestPath = new PathString("/Upload")
};
app.UseDirectoryBrowser(opt);
现在运行一下看看效果
点击 浏览文件 按钮,显示了预期的界面,修复上一节翻车事件.
6. 发布工程.
用命令行发布的大佬跳过. 😅
右键发布,选择发布到文件夹,然后来个单文件发布试试
打开发布后的目录,双击运行,复制链接到浏览器,运行正常
查找本机局域网ip,在手机上打开
咦?又翻车了?
原因是默认只监听了http://localhost:5000,外部是不能访问的.
有很多方式可设置, 可用命令行加 --Urls 指定 dotnet run --urls "http://localhost:5100"
, 也可以配置 webBuilder.UseUrls
方式指定.
Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (1)
Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (3)
AlexChow
关联项目
FreeSql QQ群:4336577
BA & Blazor QQ群:795206915
Maui Blazor 中文社区 QQ群:645660665
知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。
转载声明
本文来自博客园,作者:周创琳 AlexChow,转载请注明原文链接:https://www.cnblogs.com/densen2014/p/16052876.html