【vb.net】实现简单的内网文件分享网站

哈里和发小去网吧上网时,最烦恼的一个需求就是,自己写的、找的游戏不好发给发小电脑。

登录QQ、网盘容易被盗号,使用在线网盘又限制文件大小。

使用python搭建文件分享服务器又需要先下载py、换源、安装各种库,于是干脆自己在以前用vb.net写的web服务器HarryWeb上重构了一个HarryWeb2,以实现自己的文件共享网站服务器的需求。

程序截图:

访问网页截图:

下面是README文件内容,Ai生成,点击前往代码仓库https://gitee.com/harryxiaocn/harry-web2

HarryWeb2 - VB.NET 轻量级 Web 服务器模块

HarryWeb2 是一个基于 VB.NET 开发的轻量级、高性能 Web 服务器模块。它提供了简洁的 API 用于构建自定义 Web 服务,并附带了一个功能完整的局域网文件共享服务器示例。

项目特点

  • 轻量易用:纯 VB.NET 编写,无需依赖大型框架,直接集成到你的 WinForms 或控制台应用中。
  • 异步处理 :基于 SocketAsyncEventArgs 实现的高性能异步网络通信。
  • 内置路由:支持灵活的路由配置,轻松处理不同的 URL 请求。
  • 多表单解析 :内置 multipart/form-data 解析引擎,支持大文件上传处理。
  • JSON 支持 :配套 HarryNode 类,提供强大的 JSON 解析与生成功能。
  • 文件共享示例:自带一个局域网文件共享服务器,支持文件列表查看、点击下载及带进度条的 AJAX 上传。

核心模块

  • HarryWeb.vb : 服务器核心逻辑,包含 HarryWebServerHarryRequestHarryResponse
  • HarryNode.vb: 数据结构助手,用于 JSON 解析、路径访问和树形结构管理。

快速上手

1. 启动服务器并添加路由

vb 复制代码
Dim Server As New HarryWebServer()

' 添加路由处理
Server.AddRoute("/", AddressOf IndexHandle)
Server.AddRoute("/api/test", AddressOf ApiHandle)

' 启动监听(默认 80 端口)
Server.StartListen(80)

2. 编写处理函数

vb 复制代码
Private Sub ApiHandle(client As HarrySocket, request As HarryRequest)
    Dim response As New HarryResponse()
    response.Body = Encoding.UTF8.GetBytes("{""message"": ""Hello from HarryWeb!""}")
    response.ContentType = "application/json"
    client.SendResponse(response)
End Sub

局域网文件共享功能

本项目在 Form1.vb 中展示了如何使用 HarryWeb 快速搭建一个局域网文件共享平台:

  • 文件列表 :自动扫描 uploads 目录并生成 HTML 表格。
  • 文件下载:支持各种格式文件的流式下载。
  • 文件上传
    • 前端使用原生 JavaScript + XMLHttpRequest 实现带进度的上传。
    • 后端通过 HarryRequest.Files 集合接收上传的文件并保存。

安装与运行

  1. 使用 Visual Studio 2019 或更高版本打开 HarryWeb2.sln
  2. 编译并运行项目。
  3. 在浏览器中访问 http://localhost 或你的局域网 IP。

开源协议

本项目采用 MIT 协议开源。

相关推荐
peixiuhui11 分钟前
Iotgateway技术手册-3. 架构设计
.net·iot·核心板·iotgateway·开源网关·arm工控板
武藤一雄12 小时前
C# 关于多线程如何实现需要注意的问题(持续更新)
windows·后端·microsoft·c#·.net·.netcore·死锁
我是唐青枫18 小时前
深入理解 System.Lazy<T>:C#.NET 延迟初始化与线程安全
c#·.net
曲幽20 小时前
FastAPI + SQLite:从基础CRUD到安全并发的实战指南
python·sqlite·fastapi·web·jwt·form·sqlalchemy·oauth2
波波00720 小时前
.sln 时代落幕,.slnx成为 .NET 新标准?
.net·vs
mudtools21 小时前
基于.NET操作Excel COM组件生成数据透视报表
c#·.net·excel
冰茶_1 天前
WPF路由事件:隧道与冒泡机制解析
学习·c#·.net·wpf·.netcore·mvvm
我是唐青枫1 天前
深入理解 Volatile:C#.NET 内存可见性与有序性
c#·.net
武藤一雄1 天前
C# 关于GC垃圾回收需要注意的问题(持续更新)
后端·微软·c#·.net·.netcore
武藤一雄1 天前
C# 关于应用程序域(AppDomain)需要注意的问题(持续更新)
后端·microsoft·微软·c#·.net·.netcore