如何在服务器上上传文件

本文关键字:文件 服务器 | 更新日期: 2023-09-27 17:48:55

>我已经在服务器上部署了我的软件,在我的软件中有一个工具可以读取 excel 文件并在 gridView 中显示内容。

它在我的独立 PC 上运行良好,如何在网络上执行此操作?

我应该在服务器上上传我的 excel 文件,然后读取它还是直接从用户的 PC 读取它?

有什么解决办法吗?

如何在服务器上上传文件

您需要在页面上放置文件上传控件

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

然后在代码隐藏中保存此文件

 fup.SaveAs(Server.MapPath("~/upload/temp/" + fup.FileName ));

你可以看看这篇文章

使用 ASP.NET 2.0 和 C# .NET 执行文件上载

以及使用 ASP.NET 和 C# 的简单文件上传控制

到目前为止,

我还没有收到你的问题。网络上发生哪个错误?

这是可能对您有所帮助的示例代码。每次它从客户端计算机在服务器上上传 excel 文件并从中获取数据并绑定网格时。

      protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
        {    
            if (AsyncFileUpload1.HasFile)
            {
                string strPath = MapPath("~/Uploads/") + System.IO.Path.GetFileName(e.filename);
                 // gets extension of a file to check for a valid excel file
                string ext = System.IO.Path.GetExtension(e.filename); 
                if (ext.ToLower() == ".xlsx" || ext.ToLower() == ".xls")
                {
                    AsyncFileUpload1.SaveAs(strPath);
                }       
                DataTable dt = getdata(strPath); // get data from excel file
                BindGrid(dt); 
            }

        }

您无法直接从用户PC读取它,无论如何都需要上传文件。

它在本地环境中运行良好,因为您的网站和您尝试读取的文件实际上在同一台计算机上。因此,Web服务器可以直接加载文件,没有问题。

在实时环境中,网站将位于某处的服务器上,而 excel 文件将位于用户自己的 PC 上。在这种情况下,Web 服务器无法访问该文件,您必须通过文件上传对话框上传到 Web 服务器。然后,您可以将此文件保存到服务器上某个位置指定的安全文件夹(最好是在 web.config 中,以防您改变主意或需要移动它),并访问该文件以显示、操作甚至插入到数据库中(如果您愿意)。

我认为除非你真的必须这样做,否则你不应该把它保存到你的服务器(这需要你保存到的目录的写入权限)。如果您使用 Open XML 读取 Excel 文件,您可以直接读取发布的流,而无需先通过 SpreadsheetDocument.Open(FileUpload1.PostedFile.InputStream, false) 保存到文件中。