1. 程式人生 > >使用非服務端的html標記動態上傳檔案

使用非服務端的html標記動態上傳檔案

aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>無標題頁</title>
     <script type="text/javascript">
        function selectFile(i){
            var str="";
            if(i>0){
                for(var j = 1;j<=i;j++){
                    if(j!=1){
                        str=str+"<br/>";
                    }
                    str= str+"附件"+j+"<input type='file' name='file"+j+"' id='file"+j+"'/>";
                }
            }else{
                alert("fds");
            }
            document.getElementById("files").innerHTML = str;
           
        }
        function f1(){
            alert("fs");
        }
    </script>
</head>
<body>
    <form id="form1" runat="server" method="post"  enctype="multipart/form-data">
    <div>
        <select id="selCount" onchange="javascript:selectFile(this.value)">
             <option value="0">0</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
        </select>
        <br />
        <span id="files">
           
        </span>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </div>
    </form>

</body>
</html>

cs:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
    private string[] s = { "image/*", "text/plain" };
    protected void Page_Load(object sender, EventArgs e)
    {
      
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        HttpFileCollection files = HttpContext.Current.Request.Files;
        for (int i = 0; i < files.Count; i++)
        {
            HttpPostedFile fs = files[i];
            if (fs.FileName != "")
            {
                bool flag = false;
                //Path.GetExtension(fs.FileName).ToLower() 取檔案的字尾名
                for (int j = 0; j < s.Length; j++)
                {
                    if (fs.ContentType.Contains(s[j]))
                    {
                        flag = true;
                        break;
                    }
                }
                if (flag)
                {
                    if (!System.IO.Directory.Exists(Server.MapPath("~/upload")))
                    {
                        Directory.CreateDirectory(Server.MapPath("~/upload"));
                    }
                    fs.SaveAs(Server.MapPath("~/upload/" + fs.FileName.Substring(fs.FileName.LastIndexOf('.') + 1)));
                }
            }
        }
      
    }
}