javascript动态生成图文上传控件实现代码

步骤/方法

 ①将aspx页面中Form标签改为

 代码如下 复制代码
:<form id="form1" runat="server" enctype= "multipart/form-data">,

也就是说在原有的基础上增加了enctype= "multipart/form-data"
②在页面中加入如下代码,这里包含了一个div容器,以方便用js动态向容器中增加控件

 代码如下 复制代码
<div align="left" id="div_Pic" style="border:1px solid #CCCCCC">
    <input name="PicFile" type="file" id="ShowPicFile" onClick="createInput('div_Pic','PicFile')">
    </div>

  ③增加js代码:

 代码如下 复制代码

    <script language="javascript" type="text/ecmascript">
    function createInput(parentID,inputFileID){
    var parent=$(parentID);//获取父元素
    var div=document.createElement("div");//创建一个div容器用于包含input file
    var x=parseInt(Math.random()*(80-1))+1;
    var divName=inputFileID+x.toString();//随机div容器的名称
    div.name=divName;
    div.id=divName;
    var  aElement=document.createElement("input"); //创建input
    aElement.name=inputFileID;
    aElement.id=inputFileID;
    aElement.type="file";//设置类型为file
    aElement.onclick=function(){ createInput("div_Pic","PicFile")};
    var delBtn=document.createElement("input");//再创建一个用于删除input file的Button
    delBtn.type="button";
    delBtn.value="删除";
    delBtn.onclick=function(){ removeInput(parentID,divName)};//为button设置onclick方法
    div.appendChild(aElement);//将input file加入div容器
    div.appendChild(delBtn);//将删除按钮加入div容器
    parent.appendChild(div);//将div容器加入父元素
    }
    function removeInput(parentID,DelDivID){
    var parent=$(parentID);
    parent.removeChild($(DelDivID));
    }
    //通过元素ID获取文档中的元素
    function $(v){return document.getElementById(v);}
    </script>

    ④效果展示:

 

    当点击浏览时就会增加一个新上传控件,如果感觉哪个不需要可以点击后面的删除功能删除。
    ⑤服务器端处理代码:

 代码如下 复制代码
    System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
    for (int i = 0; i < files.Count; i++)
    {
    System.Web.HttpPostedFile filePicture = files[i];
    string FileType;    // 上传文件类型(扩展名)
    FileType = System.IO.Path.GetExtension(filePicture.FileName).ToLower();
    string sFileName = Guid.NewGuid().ToString() + FileType;
    filePicture.SaveAs(Server.MapPath("HotPic\" + sFileName));//保存图片
    }

    用System.Web.HttpContext.Current.Request.Files;可以得到所有上传文件的集合,然后遍历上传就可以了。

时间: 2024-10-01 09:02:06

javascript动态生成图文上传控件实现代码的相关文章

javascript实现校验文件上传控件实例

  实例讲述了javascript实现校验文件上传控件.分享给大家供大家参考.具体如下: 该javascript校验文件上传控件代码可检测上传文件的类型是否是图片 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <script language="javascript"> function Checkfiles() { var fup = document.getElementById('logo1'); var file

javascript实现校验文件上传控件实例_javascript技巧

本文实例讲述了javascript实现校验文件上传控件.分享给大家供大家参考.具体如下: 该javascript校验文件上传控件代码可检测上传文件的类型是否是图片 <script language="javascript"> function Checkfiles() { var fup = document.getElementById('logo1'); var fileName = fup.value; var ext = fileName.substring(fil

Javascript美化input=file文件上传控件

[实例名称] JS实现文件上传一次性完成 [实例描述] 默认的HTML控件file可以实现文件的上传,但必须经过选择文件和单击上传按钮两个步骤.本例学习如何实现一步上传文件的操作. 例子  代码如下 复制代码 <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页-学无忧(www.111cn.net)</title> </head> <body>

jQuery文件上传控件 Uploadify 详解_jquery

基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个版本,一个用flash,一个是html5.html5的需要付费~所以这里只说flash版本的用法. 官网:http://www.uploadify.com/ 控件截图: 用法: 首先引用下面的文件 <link rel="stylesheet" type="text/css&

asp.net silverlight批量上传控件实现方法

    /// <summary>     /// 文件的状态     /// </summary>     internal enum filestatus     {         /// <summary>         /// 准备就绪,等待上传         /// </summary>         ready = 0,         /// <summary>         /// 正在上传中         /// &

ASP.NET文件上传控件Uploadify的使用方法_实用技巧

对于文件上传来说,有很多种实现方式,如传统的表单方式,现在流行的flash方式,甚至还有纯JS方式,之所以有这些方式来实现文件上传,我想主要原因是因为,传统的上传对于大文件支持不够,因为它是单线程同步机制,当大文件通过HTTP方式发送到服务端时,对于服务端站点的主线程影响比较大,会产生阻塞,所以,现在很多上传控制都是异步,多线程的方式去实现的. 今天来介绍一个文件上传控制,它就是Uploadify,它应该是flash的异步上传工具,对于大文件支持还不错,所以,我选择了它. 相关API介绍 upl

基于jquery跨浏览器显示的file上传控件_jquery

前面我写过一篇短小的文章,简要的介绍了下怎样定义input type="file" 的样式.对于一般的表单,上传控件较少,这样的做法确实不错,既减少了代码,又美化了样式,原文:<定义input type="file" 的样式> 其实要实现给file控件定义样式,大致思想都是一样的. 今天看到博客园的繁花连写两篇文章来研究file控件 <jquery.fileEveryWhere.js--一个跨浏览器的file显示插件> <firefox

文件上传~Uploadify上传控件

对于文件上传来说,有很多种实现方式,如传统的表单方式,现在流行的flash方式,甚至还有纯JS方式,之所以有这些方式来实现文件上传,我想主要原因是因为,传统的上传对于大文件支持不够,因为它是单线程同步机制,当大文件通过HTTP方式发送到服务端时,对于服务端站点的主线程影响比较大,会产生阻塞,所以,现在很多上传控制都是异步,多线程的方式去实现的. 今天来介绍一个文件上传控制,它就是Uploadify,它应该是flash的异步上传工具,对于大文件支持还不错,所以,我选择了它. 相关API介绍 upl

asp..net2.0文档上传 的一个方法(一个上传控件,上传多个文档 )

控件|上传|上传控件  前台 :   <table style="width:100%">         <tr>             <td style="width:15%">                 类型名称:</td>             <td>                <asp:DropDownList ID="TypeDDL" runat=&q