zoukankan      html  css  js  c++  java
  • ASP.NET中采用HTML控件File进行多文件上传

    在asp.net中当服务器控件用习惯了,反而会忘记web中最为平常的get与post表单的用法。

    这一次在项目中碰到个问题,用户要动态的添加fileupload控件实现多文件上传,这个需求

    如果用服务器端控件fileupload就不好实现了。

    于是花了一个小时温习了一下,正常的web表单提交,并将体会记录了下来。当然,高手可

    以直接忽略。呵呵

    1、三个获取页面POST与GET的方法。

         <input type="text" name="name" value="test" />

         Request.Form["name"]   POST接收方式

         Request.QueryString["name"]   GET接收方式

         Request["name"]  POST与GET都可以

         这里要注意一下,如果页面是checkbox组的话,它会接收到勾选了的checkbox,其中value以逗号分隔。

    2、文件上传

         这里是我做的多文件上传的一个实例,因为用HTML控件的文件上传比较特殊一点。

         首先引入JQUERY

    <script type="text/javascript">
            function addFileControl() {
                var fileControlString = '<input name="File1" type="file" /><br />';
                $("#fileArea").append(fileControlString);
            }
        </script>

    页面代码:(注意这里的form没有runat="server",其中enctype="multipart/form-data"是必需的

    <form id="formFileUpload" method="post" action="MiniFileUpload.aspx?type=upload" enctype="multipart/form-data">
        <div id="fileArea">
            <input name="File1" type="file" /><br />
        </div>
        <input type="button" value="添加" id="btnAddUpload" onclick="addFileControl();" />
        <input type="submit" value="上传" />
        </form>

    后台.cs代码如下:(这里是遍历页面所有的file上传控件,如果页面上只有一个上传控件的话,其实可以用

    HttpPostedFile f = Request.Files["name"];

    )的方式获取的。

    private void fileUploadEvent()
            {
                HttpFileCollection fileCollection = Request.Files;
                int filesCount = fileCollection.Count;
                for (int i = 0; i < filesCount; i++)
                {
                    HttpPostedFile file = fileCollection[i];
                    if (!string.IsNullOrEmpty(file.FileName))
                    {
                        if (file.FileName.LastIndexOf("\\") != -1)
                        {
                            string fileName = file.FileName.Substring(file.FileName.LastIndexOf("\\") + 1);//这里的file.FileName其实是上传文件客户端全路径
                            if (fileName.LastIndexOf(".") != -1)
                            {
                                string fileNameExtend = fileName.Substring(fileName.LastIndexOf("."));
                                if (fileNameExtend == ".txt")
                                {
                                    string savePath = AppDomain.CurrentDomain.BaseDirectory + "filesUpload\\" + fileName;
                                    file.SaveAs(savePath);
                                }
                            }
                            Response.Write(fileName + "<br/>");
                        }
                    }
                }
            }
  • 相关阅读:
    面向对象编程总结Python
    垃圾收集器与内存分配策略
    自定义异常、异常处理注意点
    关于线程【一】——线程创建、停止、interrupted()和isInterrupted()区别
    Java内存区域
    HotSpot虚拟机对象
    异常——try、catch、finally、throw、throws
    关于线程【二】——线程同步和异步
    fillder代理调试
    新鲜出炉的Asp.Net MVC电子书
  • 原文地址:https://www.cnblogs.com/msql/p/2805191.html
Copyright © 2011-2022 走看看