asp.net 网络表单中的文件夹上传

Folder upload in asp.net web forms

我需要上传一个不压缩的文件夹。
文件夹也可能包含子文件夹和文件。
可能吗?

可能是以下链接之一: 第一:https://docs.microsoft.com/en-us/troubleshoot/aspnet/upload-file-to-web-site

第二个:https://qawithexperts.com/article/asp-net/file-upload-in-aspnet-web-forms-upload-control-example/273

用户必须 select 文件。您不能从代码中突然 select 单个文件,或从代码中获取多个文件。

原因是为了安全。如果我可以编写代码 selects 一个文件而无需用户交互,那么当你访问我的网站说要看猫视频时,我会窃取你的所有文件 - 我会抓住你的电子邮件列表,甚至寻找说excel 名为密码的文件。我会寻找、获取和窃取称为银行信息的文件。因此,没有浏览器允许您或您的代码 select 单个文件,甚至多个文件。安全保留太大,因此不允许。

所以你的浏览器客户端代码不能select一个文件。用户必须 select 该文件。

如果文件上传控件支持多个文件 selection,您可以让用户浏览到一个文件夹,打开它,然后说按 ctrl-A。但在所有情况下,用户必须 select 每个文件。您不能 select 文件夹,也不能使用客户端代码 select 文件夹。

如果这是可能的,那么这将是一个巨大的安全漏洞,从那时起,任何访问任何站点的人都可以让浏览器直接运行 select 任何旧文件,而用户不知情,甚至无法控制或想要允许或不允许上传文件。

所以,这是一个浏览器锁定问题。如果有人推出了允许这样做的浏览器,那么就没有人会使用该浏览器,因为它的安全风险太高了。

因此客户端代码甚至无法设置或更改 select 一个简单的单个文件 - 用户必须执行此操作。因此,select 甚至无法上传文件夹 - 用户必须这样做。

因此,您可以采用允许用户创建多个 selection 的众多文件上传控件之一 - 但是单个文件或多个文件的多个 selection 必须出现通过用户操作 selecting 文件 - 客户端代码永远不能 select,出于安全原因选择或选择文件名。只有 USER 操作可以 select 一个文件 - 绝不是客户端代码 - 它根本不允许,并且出于安全原因永远不会被允许。

那么一个允许多个文件 select 离子的文件控件 - 允许用户快速 select 一个文件夹中的所有文件?是的,但不允许 selecting 文件夹。用户必须浏览到文件夹 - select 个文件才能上传。然后他们可以 open/add 另一个文件夹和该文件夹中的 select 文件。但是客户端代码无法获取、拾取、触摸或使用任何文件夹,甚至一个简单的单个文件。