asp.net實現大文件上傳

来源:http://www.cnblogs.com/hyyweb/archive/2016/01/19/5141055.html
-Advertisement-
Play Games

需要下載NeatUpload插件上傳頁面: 上 傳 查看下載 後臺源碼:protected void BtnUP_Click(object send...


需要下載NeatUpload插件

上傳頁面:

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

<%@ Register Assembly="Brettle.Web.NeatUpload" Namespace="Brettle.Web.NeatUpload"
    TagPrefix="Upload" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
     <link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" />
    <link href="easyui/themes/icon.css" rel="stylesheet" type="text/css" />
    <script src="easyui/jquery.min.js" type="text/javascript"></script>
    <script src="easyui/jquery.easyui.min.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div class="easyui-panel" style="padding:5px;">
        <Upload:ProgressBar ID="ProgressBar1" runat='server'>
        </Upload:ProgressBar>
      <br />
    <Upload:InputFile ID="AttachFile" runat="server" />
    <br />
    <br />
    <asp:LinkButton ID="BtnUP" runat="server" class="easyui-linkbutton" data-options="iconCls:'icon-add'" onclick="BtnUP_Click">上 傳</asp:LinkButton><br /><br />
    <a href="Down.aspx">查看下載</a>
    </div>
    </form>
</body>
</html>

後臺源碼:

protected void BtnUP_Click(object sender, EventArgs e)
    {
        if (AttachFile.HasFile)
        {
            string FileName = this.AttachFile.FileName;//獲取上傳文件的文件名,包括尾碼
            string ExtenName = System.IO.Path.GetExtension(FileName);//獲取擴展名
            string SaveFileName = System.IO.Path.Combine(System.Web.HttpContext.Current.Request.MapPath("UpLoads/"), DateTime.Now.ToLongDateString().ToString() + "-" + FileName);//合併兩個路徑為上傳到伺服器上的全路徑
            AttachFile.MoveTo(SaveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite);
            string url = "UpLoads/" + DateTime.Now.ToString("yyyyMMddhhmmss") + ExtenName; //文件保存的路徑
            float FileSize = (float)System.Math.Round((float)AttachFile.ContentLength / 1024000, 1); //獲取文件大小並保留小數點後一位,單位是M
            Response.Write("<script>alert('恭喜您,上傳成功!')</script>");
        }
        else
        {
            Response.Write("<script>alert('請選擇文件!')</script>");
        }
    }

這裡直接獲取上傳文件夾文件名稱提供下載

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" />
    <link href="easyui/themes/icon.css" rel="stylesheet" type="text/css" />
    <script src="easyui/jquery.min.js" type="text/javascript"></script>
    <script src="easyui/jquery.easyui.min.js" type="text/javascript"></script>
    <style type="text/css">
        .div_style  ul li
        {
             list-style-type: decimal;
             border-bottom:1px dashed #E3E3E3;
             margin-bottom:5px;
        }
        .div_style ul li a
        {
            text-decoration: none;
            cursor: pointer;
            font-size: 16px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div class="div_style easyui-panel" style="padding: 5px;">
    <a href="index.aspx">上傳文件</a>
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        <ul  id="www_zzjs_net">
            <%if (files.Length == 0) { Label1.Text = "暫無文件"; }
              else
              {

                  foreach (System.IO.FileInfo item in files)
                  {%>
            <li><a href="Default2.aspx?1=<%=item%>">
                <%=item %></a> &nbsp;&nbsp; &nbsp;<a href="delete.aspx?1=<%=item%>" onclick="javascript:return confirm('確定刪除嗎?');" >刪除附件</a>
            </li>
            <% }
          }%>
        </ul>
    </div>
    <div id="changpage"></div>
    <%--js分頁--%>
<%--<script language="javascript">
    var obj, j;
    var page = 0;
    var nowPage = 0; //當前頁
    var listNum = 25; //每頁顯示<ul>數
    var PagesLen; //總頁數
    var PageNum = 4; //分頁鏈接接數(5個)
    onload = function () {
        obj = document.getElementById("www_zzjs_net").getElementsByTagName("li");
        j = obj.length
        PagesLen = Math.ceil(j / listNum);
        upPage(0)
    }
    function upPage(p) {
        nowPage = p
        //內容變換
        for (var i = 0; i < j; i++) {
            obj[i].style.display = "none"
        }
        for (var i = p * listNum; i < (p + 1) * listNum; i++) {
            if (obj[i]) obj[i].style.display = "block"
        } //歡迎來到站長特效網,我們的網址是www.zzjs.net,很好記,zz站長,js就是js特效,本站收集大量高質量js代碼,還有許多廣告代碼下載。
        //分頁鏈接變換
        strS = '<a href="###" onclick="upPage(0)">首頁</a>  '
        var PageNum_2 = PageNum % 2 == 0 ? Math.ceil(PageNum / 2) + 1 : Math.ceil(PageNum / 2)
        var PageNum_3 = PageNum % 2 == 0 ? Math.ceil(PageNum / 2) : Math.ceil(PageNum / 2) + 1
        var strC = "", startPage, endPage;
        if (PageNum >= PagesLen) { startPage = 0; endPage = PagesLen - 1 }
        else if (nowPage < PageNum_2) { startPage = 0; endPage = PagesLen - 1 > PageNum ? PageNum : PagesLen - 1 } //首頁
        else { startPage = nowPage + PageNum_3 >= PagesLen ? PagesLen - PageNum - 1 : nowPage - PageNum_2 + 1; var t = startPage + PageNum; endPage = t > PagesLen ? PagesLen - 1 : t }
        for (var i = startPage; i <= endPage; i++) {
            if (i == nowPage) strC += '<a href="###" style="color:red;font-weight:700;" onclick="upPage(' + i + ')">' + (i + 1) + '</a> '
            else strC += '<a href="###" onclick="upPage(' + i + ')">' + (i + 1) + '</a> '
        } //歡迎來到站長特效網,我們的網址是www.zzjs.net,很好記,zz站長,js就是js特效,本站收集大量高質量js代碼,還有許多廣告代碼下載。
        strE = ' <a href="###" onclick="upPage(' + (PagesLen - 1) + ')">尾頁</a>  '
        strE2 = nowPage + 1 + "/" + PagesLen + "" + "" + j + ""
        document.getElementById("changpage").innerHTML = strS + strC + strE + strE2
    }
</script>--%>
    </form>
</body>
</html>

//下麵是後臺代碼

public FileInfo[] files { set; get; }
protected void Page_Load(object sender, EventArgs e)
{
string dirPath = HttpContext.Current.Server.MapPath("~/UpLoads");
if (Directory.Exists(dirPath))
{
DirectoryInfo dir = new DirectoryInfo(dirPath);
files = dir.GetFiles("*.*");
}
if (files.Length == 0) { Label1.Text = "暫無文件"; }
}

 

//這是新建另一個頁面提供下載的代碼

if (Request.QueryString["1"] != null)
{


string _filename = Request.QueryString["1"].ToString(), _filepath = System.IO.Path.Combine(MapPath("~/UpLoads"), _filename);
if (System.IO.File.Exists(_filepath))
{
Response.Clear();
Response.Buffer = true;

Response.AddHeader("Content-Disposition", "attachment;filename=" + _filename);
Response.ContentType = "application/unknow";
Response.TransmitFile(_filepath);
Response.End();
}
}

 

//這是新建另一個頁面提供刪除操作(後臺)

string _filename = Request.QueryString["1"].ToString(), _filepath = System.IO.Path.Combine(MapPath("~/UpLoads"), _filename);
if (System.IO.File.Exists(_filepath))
{
File.Delete(_filepath);
Response.Write("<script language=javascript>alert('刪除成功!');window.location = 'Down.aspx';</script>");
//Response.Redirect("Down.aspx");
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、簡介 Bazaar 是一種強大的新一代源代碼控制系統,它能夠適用於所有主流操作系統,能夠適應任何開發團隊的工作模式。 二、安裝 1)yum方式 yum install -y bzr 三、教程 http://doc.bazaar.canonical.com/bzr.2.1/en/tutorials...
  • C# Lambda 實例
  • 作為APUE 14.3節的參考 linux是有強制鎖的,但是預設不開啟.想讓linux支持強制性鎖,不但在mount的時候需要加上-o mand,而且對要加鎖的文件也需要設置相關許可權。 1、建議鎖又稱協同鎖。對於這種類型的鎖,內核只是提供加減鎖以及檢測是否加鎖的操作,但是不提供鎖的控制與協調工作。也...
  • Linux 配置無網路狀態利用yum安裝軟體 在有網路的情況下安裝軟體只需一條yum install xxx命令,例如安裝gcc只需一條指令:yum install gcc 那麼在沒有網路的情況下該如何安裝gcc呢?雖然沒有網路,但是我想你應該有安裝光碟或者ISO鏡像,至少也有gcc所需要的安裝包....
  • 作者信息作者: 彭東林郵箱:[email protected]:405728433平臺簡介開發板:tiny4412ADK + S700 + 4GB Flash要移植的內核版本:Linux-4.4.0 (支持device tree)u-boot版本:友善之臂自帶的 U-Boot 2010...
  • 一.概述 記憶體映射是在調用進程的虛擬地址空間創建一個新的記憶體映射。記憶體映射分為2種:1.文件映射:將一個普通文件的全部或者一部分映射到進程的虛擬記憶體中。映射後,進程就可以直接在對應的記憶體區域操作文件內容!2.匿名映射:匿名映射沒有對應的文件或者對應的文...
  • 新建一個.cs文件用來寫生成圖形驗證碼的方法,返回一個MemoryStream的參數。在Default.aspx中接收輸出就可以了。1.下麵是.cs的代碼using System;using System.Collections.Generic;using System.Linq;using Sys...
  • 在用Linq查詢中,常常需要用到分頁功能,因為每次都需要些分頁這些功能,於是把分頁功能提取出來,不喜大家勿噴,只是貼出來,自覺地很實用。一下貼出核心代碼: 1 /// 2 /// LinqHelper 主要用於數據集,排序 分頁等功能 3 /// 4 public c...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...