无需用户交互即可在ASP.NET上传文件

时间:2009-09-23 09:41:44

标签: asp.net file upload

我对ASP.NET的经验很少,很抱歉这个问题很简单。

我需要将文件从WinForms应用程序上传到服务器,在该服务器中,文件将被自动处理并保存到数据库中,而服务器上没有任何其他用户交互。

我没有任何物理服务器,所有服务器都将在中等信任环境中与ASP.NET共享虚拟主机上运行。

在Web服务器上运行需要什么?它是WebService吗?我根本不知道从哪里开始和寻找什么。

我理解如何通过用户的互动来完成:

  1. 用户访问我们的网页
  2. 点击“上传”按钮
  3. 选择硬盘上的文件
  4. 单击OK,我将在ASP.NET中捕获此事件,上传文件并将其保存到 数据库中。
  5. 当没有网页且没有用户交互时,我在服务器上没有可用于接收文件并将其保存在服务器上的事件。

    也许这是一项简单的任务,但我对此没有任何经验。

    感谢所有评论,Petr

2 个答案:

答案 0 :(得分:1)

我可以看到两个选项:

  1. 在Web服务器上创建可由WinWorms应用程序使用的WebService。
  2. 使用来自WinForms的不良HTTP协议将文件(作为多部分表单)信息发布到Web服务器上的处理程序(更好的ASP.NET MVC)。
  3. 对我来说,XML Web服务会更容易。

    以下是Visual Studio中working with Web Services的一些信息。

    如果您仍想使用方法#2,那么您需要使用WebRequest类。 以下是一个示例:Send data using WebRequest

答案 1 :(得分:0)

我认为您的问题是执行一个将文件附加到数据库中的代码段的想法。

由于您的服务器内没有用户互动,因此您唯一的选择是在从Windows应用程序上传文件后调用 Web Service

我假设您使用的是SQL Server,因此您必须声明存储Web服务器的文件的静态路径(文件夹名称已足够),然后使用 Server.MapPath(路径)方法,您可以带来文件的绝对路径。 在您提交Path文件后,您应该使用 System.IO 类: FileStream StreamReader 读取文件并将其转换为 byte [] 数组,然后将其存储到数据库中

希望这有帮助