javascript動態產生圖文上傳控制項實現代碼

來源:互聯網
上載者:User

步驟/方法

 ①將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;可以得到所有上傳檔案的集合,然後遍曆上傳就可以了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.