.net实现文件上传到服务器 20

RT,把excel文件上传到服务器上去,然后打开服务器上的路径进行读取excel的内容。该如何实现。望高人指点,在线等。。写谢谢了。... RT,把excel文件上传到服务器上去,然后打开服务器上的路径进行读取excel的内容。该如何实现。望高人指点,在线等。。写谢谢了。 展开
 我来答
曹晓山11
推荐于2018-04-12 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52072
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

1、前端界面十分简单,只是放一个file类型的和一个按钮,并且为这个按钮添加点击事件(btnUpLoad_Click),如下图:

<input id="UpLoad" runat="server" type="file">
</asp:button>

2、后台编写上传按钮点击事件UpLoad_Click里的代码,先大体说一下思路:

  • 根据file类型的控件获得将要上传文件在本机的物理路径;

  • 在这个物理路径中用截取字符串的方法获得文件名(第一步中取得的路径为本机的绝对路径,在服务器上是无效的,所以这里只需要获取文件名);

  • 利用file类型的控件属性PostedFile的SaveAs()方法将相应文件存储到服务器中指定的文件夹中。

3、后台核心代码:

protected void btnUpLoad_Click(object sender, EventArgs e)
    {
        //取出所选文件的本地路径
        string fullFileName = this.UpLoad.PostedFile.FileName;
        //从路径中截取出文件名
        string fileName = fullFileName.Substring(fullFileName.LastIndexOf(\) + 1);
        //限定上传文件的格式
        string type = fullFileName.Substring(fullFileName.LastIndexOf(.) + 1);
        if (type == doc || type == docx || type == xls || type == xlsx || type == ppt || type == pptx || type == pdf || type == jpg || type == bmp || type == gif || type == png || type == txt || type == zip || type == rar)
        {
            //将文件保存在服务器中根目录下的files文件夹中
            string saveFileName = Server.MapPath(/files) + \ + fileName;
            UpLoad.PostedFile.SaveAs(saveFileName);
            Page.ClientScript.RegisterStartupScript(Page.GetType(), message, <script language='javascript' defer>alert('文件上传成功!');</script>);
 
            //向数据库中存储相应通知的附件的目录
            BLL.news.InsertAnnexBLL insertAnnex = new BLL.news.InsertAnnexBLL();
            AnnexEntity annex=new AnnexEntity();     //创建附件的实体
            annex.AnnexName=fileName;               //附件名
            annex.AnnexContent=saveFileName;        //附件的存储路径
            annex.NoticeId = noticeId;              //附件所属“通知”的ID在这里为已知
            insertAnnex.InsertAnnex(annex);         //将实体存入数据库(其实就是讲实体的这些属性insert到数据库中的过程,具体BLL层和DAL层的代码这里不再多说)
        }
        else
        {
            Page.ClientScript.RegisterStartupScript(Page.GetType(), message, <script language='javascript' defer>alert('请选择正确的格式');</script>);
        }
    }
对到正b842b
2011-11-14 · 超过23用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:64.9万
展开全部
if (FilePath.HasFile == false)
{
ShowJS("没有文件");
return;
}
DataTable dt_excel = GetTableType();
string filepath = string.Empty;
filepath = FilePath.PostedFile.FileName;
string filename = FilePath.FileName;
string savepath = Server.MapPath(Request.ApplicationPath + "\\ExcelFiles\\");
string dir = Path.GetDirectoryName(savepath);
if (Directory.Exists(dir) == true)
{
Directory.CreateDirectory(dir);
}
string[] arr = Directory.GetFiles(dir, filename);
string fname = filename.Substring(0, filename.LastIndexOf('.'));
int m = 0;
while (arr.Length > 0)
{
m++;
filename = fname + m + Path.GetExtension(filename);
arr = Directory.GetFiles(dir, filename);
}
filepath = savepath + filename;
FilePath.PostedFile.SaveAs(filepath);
dt_excel = PublicWay.ReadExcel(filepath, dt_excel);//读取Excel到DataTable中
File.Delete(filepath);

PublicWay是一个自己写的方法,你可以加我,我传给你,或者用邮箱也可以
追问
邮箱:star315@163.com
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式