繁体   English   中英

如何上传服务器上的文件?

[英]How to upload files on server?

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

它在我的独立PC上工作正常,我怎么能在网上做到这一点?

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

有解决方案吗

你需要在你的页面上放置fileupload控件

<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)保存到文件中...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM