将文件从客户端上传到服务器,而无需打开“文件”对话框

upload file from client to server without openFile dialog

本文关键字:文件 对话框 客户端 服务器      更新时间:2023-09-26

我正在尝试创建一个ASPX页面,我可以在其中直接将文件从客户端上传到服务器,而无需用户干预。我想做一些事情,例如当用户在 url 中指定文件路径时,该特定文件必须上传到服务器。

例:ht.tp://XXX.XXX.XXX.XXX/File_upload/File_Uploader.aspx?upload=C:/sample.csv&type=csv

用户可以在上传后更改值,无论他指定什么文件,都需要将其上传到位于 xxx.xxx.xxx.xxx

这只是一个试验,用于检查是否正在服务器上创建CSV文件,并且未创建该文件。

我只想将客户端的文件复制到服务器端,并且它只能由上面指定的格式的 ASPX 页面提供。如果还有其他好方法,请指导我。谢谢。

如果没有用户交互,则无法上传文件。他必须做一个明确的动作:拖放或选择一个带有对话框窗口的文件。

这是因为出于安全原因,想象一下,如果一个HTML页面可以将它想要的任何文件上传到远程服务器,而无需用户选择哪一个:它可以上传用户文档,设置,密码或运行浏览器的Windows用户可以访问的任何内容。出于同样的原因,即使是 value 属性也经常被忽略,并且并非每个浏览器都处理 accept 属性(您可以或多或少地强制用户选择您想要的文件,然后他才能继续)。据我所知,旧版本的Firefox甚至不允许以编程方式单击input标签来上传文件。

您应该发布文件的内容。

这就是浏览器在使用文件上传对话框时所做的。浏览器打开文件并通过 HTTP 发送内容。

例如,您可以使用 wget --post-file=file.txt 发布内容。然后,在服务器上读取 POST 数据以检索文件的内容。