【问题标题】:how to upload files如何上传文件
【发布时间】:2010-12-11 14:46:38
【问题描述】:

如何将文件从 ASP.NET Web 应用程序上传到任何 Web 服务器(Linux)..

【问题讨论】:

  • 你能澄清一下吗?您是想从浏览器上传文件到服务器 ASP.NET 应用程序(在 linux 服务器上运行),还是想从一台服务器(运行 ASP.NET 应用程序)上传文件到另一台服务器(运行. ..someting,在 linux 下)?
  • 我想将文件从一台服务器(运行我的 ASP.NET 应用程序)上传到另一台在 linux 下运行的服务器..
  • 这个完整的 nodejs 代码示例可能是您问题的答案(包括服务器和客户端代码):github.com/malikasinger1/upload-file-nodejs

标签: asp.net upload


【解决方案1】:

将这些步骤作为一般准则:

  • 包括供用户上传文件的 ASP.NET 服务器控件
  • 将其SaveAs 路径设为远程服务器上共享的UNC path

这里有更多关于FileUpload ASP.NET Server Control at MSDN的信息。

<asp:FileUpload ID="FileUpload1" runat="server" />

if (FileUpload1.HasFile)
{
    FileUpload1.SaveAs(@"\\server2\SomeShare\" + FileUpload1.FileName);
}

如果您希望文件首先保存在您的 ASP.NET 机器上:

  • 在本地保存文件(类似于c:\uploads\temp 或what-have-you
  • 每隔一段时间或您选择的事件,将该临时目录中的所有文件从 server1 移动到 server2。
  • 使用System.IO.File.Move
string[] files = System.IO.Directory.GetFiles(@"c:\uploads\temp");

foreach (string s in files)
{
    string fileName = System.IO.Path.GetFileName(s);
    string destFile = System.IO.Path.Combine(targetPath, fileName);
    System.IO.File.Copy(s, destFile);
}

【讨论】:

    【解决方案2】:

    如果有问题的 Linux 服务器公开了 FTP 服务,那么here's a tutorial 用于在 .NET 中访问该服务。如果 FTP 不是一个选项,那么请指定 Linux 服务器公开的文件上传服务(Samba、NFS 等)。

    【讨论】:

    • @kenom:该教程中的代码可以很容易地转换为 C#,它似乎没有使用任何我注意到的纯 VB 结构。如果需要,您可以在线找到一个 VB .NET 到 C# 的转换器。如果没有,只需在 VB 中编译它,如果必须的话,使用 Reflector 将其反汇编成 C#。但是,老实说,这都是矫枉过正。代码并不复杂。
    猜你喜欢
    • 2021-12-06
    • 2013-10-24
    • 2011-11-11
    • 2016-08-07
    • 2018-01-09
    • 2014-05-18
    • 2015-02-20
    • 2016-08-23
    相关资源
    最近更新 更多