• 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/>");
                        }
                    }
                }
            }
  • 相关阅读:
    Git 历史/术语/命令/基本操作
    SQL 术语/语法/基本操作-必知必会
    bootstrap cdn地址
    IDEA 快捷键 大幅提高工作效率
    Django3 模版配置/过滤器/markdown=9
    Django3 路由文件位置/文件格式/路由传值=8
    Django3 创建项目/app全流程=7
    VS Code Django解决不必要报错
    Django3 如何使用静态文件/如何自定义后台管理页面=6
    Django3 如何编写单元测试和全面测试=5
  • 原文地址:https://www.cnblogs.com/msql/p/2805191.html
Copyright © 2020-2023  润新知