文件上傳 彙總

第一種:html 

前臺html: 

<form id="FormID" method="post" enctype="multipart/form-data" action="Handler/hdSkuControl.ashx?flag=UpLoad">

                    <input id="fileName" type="file" class="input-large" name="upfile" />

                   <input type="submit" value="上傳" />

                    </form>


注意點:

        1)enctype="multipart/form-data"  必須要寫

        2)input  控件必須要寫name,不然Request.Files[0] 會有報錯

後臺,用得一般處理程序

HttpPostedFile postedFile = context.Request.Files[0];
            string fileName, fileExtension;
            string filePath = context.Server.MapPath("~/Import/");
            fileName = System.IO.Path.GetFileName(postedFile.FileName); //文件名稱
            if (fileName != "")
            {
                fileExtension = System.IO.Path.GetExtension(fileName); //上傳文件的擴展名
                string new_filename = DateTime.Now.ToString("yyyyMMddHHmmss") + fileExtension; //給文件重新命名


                if (File.Exists(filePath + new_filename))
                {
                    try
                    {
                        File.Delete(filePath + new_filename);
                    }
                    catch
                    {
                        return;
                    }
                }
                //postedFile.FileName: 客戶端文件地址
                //postedFile.ContentType.ToString(): 上傳的文件類型
                //保存文件到文件夾,地址是當前頁面的同一級目錄下的files文件夾中
                postedFile.SaveAs(filePath + new_filename);}

二種:使用jquery ajaxSubmit

前臺:

<form id="FormID" method="post" enctype="multipart/form-data" action="Handler/hdSkuControl.ashx?flag=UpLoad">
                    <input id="fileName" type="file" class="input-large" name="upfile" />
                    </form>


注意點:

       1)使用ajaxSubmit,需要引用jquery.form.js文件

        2)與第一種方式前臺比較,沒有 submit 提交按鈕

前臺調用:

 $(document).ready(function () {
    var options = {
                        success: function (data) {//返回數據集 table,有特定格式,如要做特定的操作可查看ajaxSubmit 用法
                            rerfdata(data);
                        }
                    };
                    $("#FormID").ajaxSubmit(options);
});

後臺調用,第一種方法的後臺即可


第三種:ASP.NET 前臺導入

 <div style=" margin-left: 30px">
        <b>選擇上傳地址:</b><br />
        <asp:FileUpload ID="FileUpload1" runat="server" Width="380px" />
        <asp:Button ID="btnUpFile" runat="server" OnClick="btnUpFile_Click" Text="上傳文件" />
        <asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="導入" />
        <br />
       模板下載:<a href="templete/導入模板.xls">導入模板.xls</a><br />
        <asp:Label ID="lblmsg" runat="server" Font-Size="Small" ForeColor="Red"></asp:Label>
         
    </div>

  </div>

後臺:

if (this.FileUpload1.HasFile == false)
            {
                lblmsg.Text = "請選擇導入文件.";
                return;
            }
            //check file format
            string origenFileName = FileUpload1.FileName;
    
            string UpFileLastName = "";
            if (origenFileName.Length >= 4 && origenFileName.Substring(origenFileName.Length - 4, 4) == ".xls" )
            {
                UpFileLastName = ".xls";
            }
            else if (origenFileName.Length >= 4 && origenFileName.Substring(origenFileName.Length - 5, 5) == ".xlsx")
            {
                UpFileLastName = ".xlsx";
            }
            else
            {
                lblmsg.Text = "請選擇正確的Excel文件.";
                return;
            }
            string NewFileName = "SheetInput" + UpFileLastName;
            string NewFullFileName = _FullFilePath + NewFileName;
            string physicalPath = Server.MapPath(_FullFilePath);
            try
            {
                if (Directory.Exists(physicalPath) == false)
                {
                    Directory.CreateDirectory(physicalPath);
                }
            }
            catch (Exception error)
            {
                lblmsg.Text = "創建文件夾失敗.\n錯誤信息:" + error.Message;
                return;
            }


            FileNamePath = Server.MapPath(NewFullFileName);
            if (File.Exists(FileNamePath))
            {
                try
                {
                    File.Delete(FileNamePath);
                }
                catch (Exception error)
                {
                    lblmsg.Text = "刪除文件失敗.\n錯誤信息:" + error.Message;
                    return;
                }
            }
            try
            {
                FileUpload1.PostedFile.SaveAs(FileNamePath);
                lblmsg.Text = "文件已上傳.";
                DataSheetBind(FileNamePath);
   
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章