如何在服务器上上传文件
本文关键字:文件 服务器 | 更新日期: 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)
保存到文件中。