.net 如何上传整个文件夹的文件

JavaScript030

.net 如何上传整个文件夹的文件,第1张

如果要实现整个文件夹的上传, 有两种方式:

使用支持文件夹上传的插件.

 .NET你可以用servlet或者Flesh.  其中 chrome浏览器支持使用javascript上传文件夹文件

手动将文件夹中的所有文件,利用<input type="file" />控件添加到页面, 一次性提交上传. 其中支持html5的浏览器大部分可使用 <input type="file" multiple="multiple" />一次选择多文件上传(IE9除外)

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>)

        }

    }

你的$('#Image').val()获取的是你本地上传的路径,这是一个字符串类似这样的“c:/1.jpg”

一般使用js判断文件是否存在(val=='')和文件类型(val.split('.')[1]=='jpg'),

判断大小的话虽然可以用ActiveXObject,但这个只能兼容IE,而其他的需要借助其他的东西才能做到

建议你使用js判断文件是否存在和文件格式,然后使用ajax调用后台方法去判断文件大小和保存文件