麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

擁有網頁版小U盤 ASP.NET實現文件上傳與下載功能

2024-07-10 13:31:15
字體:
來源:轉載
供稿:網友

今天看到了一篇不錯的文章,就拿來一起分享一下吧。
實現的是文件的上傳與下載功能。

關于文件上傳:
談及文件上傳到網站上,首先我們想到的就是通過什么上傳呢?在ASP.NET中,只需要用FileUpload控件即可完成,但是默認上傳4M大小的數據,當然了你可以在web.config文件中進行修改,方式如下:

<system.web>  <httpRuntime executionTimeout="240"    maxRequestLength="20480"/></system.web>

但是這種方式雖然可以自定義文件的大小,但并不是無極限的修改的

下一步,現在“工具”有了,要怎么上傳呢?按照直覺是不是應該先選中我想要上傳的文件呢?這就對了,因為從FileUpload控件返回后我們便已經得到了在客戶端選中的文件的信息了,接下來就是將這個文件進行修改(具體的操作是:去掉所得路徑下的盤符的信息,換成服務器上的相關路徑下,不過這里并沒有更改原本文件的名稱)。然后調用相關的上傳方法就好了。

先看一下界面文件吧

<form id="form1" runat="server">    <asp:FileUpload ID="FileUpload1" runat="server" />    <br />    <br />    <br />    <br />    <br />    <br />    <asp:ImageButton ID="ImageButton_Up" runat="server" OnClick="ImageButton_Up_Click" style="text-decoration: underline" ToolTip="Up" Width="54px" />           <asp:ImageButton ID="ImageButton_Down" runat="server" OnClick="ImageButton_Down_Click" ToolTip="Download" Width="51px" />    <br />    <br />         <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>   </form>

然后是具體的邏輯

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class _Default : System.Web.UI.Page{  protected void Page_Load(object sender, EventArgs e)  {  }  //a method for currying file updown  private void UpFile()  {    String strFileName;    //get the path of the file    String FilePath = Server.MapPath("./") + "File";    //judge weather has file to upload    if (FileUpload1.PostedFile.FileName != null)    {      strFileName = FileUpload1.PostedFile.FileName;      //save all the message of the file      strFileName = strFileName.Substring(strFileName.LastIndexOf("//") + 1);      try      {        FileUpload1.SaveAs(FilePath + "//" + this.FileUpload1.FileName);        //save the file and obey the rules        Label1.Text = "Upload success!";      }      catch (Exception e)      {        Label1.Text = "Upload Failed!"+e.Message.ToString();      }    }  }  protected void ImageButton_Up_Click(object sender, ImageClickEventArgs e)  {    UpFile();  }  protected void ImageButton_Down_Click(object sender, ImageClickEventArgs e)  {    Response.Redirect("DownFile.aspx");  }}

說完了上傳,下面談一談文件的下載。這里主要是借助于Directory對象的GetFiles()方法,其可以獲得指定路徑下的所有的文件的名稱。這樣我們就可以用之來填充一個listBox,來供我們選擇到底要下載那一個文件。
也許這時你會有一點疑惑了,我現在知道了有哪些文件可以下載,那下一步我要怎么來實現呢?
其實這里是利用了Session的存儲機制,那就是將我們在listbox 中選擇的item的內容記錄到session的特定的key中,這樣的話,我們就可以不用關心這些信息在頁面間是怎么傳輸的了。只需要在想要進行下載的地方直接獲取就可以了。
最為核心的是下載的過程:

if (filepathinfo.Exists)      {        //save the file to local        Response.Clear();        Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(filepathinfo.Name));        Response.AddHeader("Content-length", filepathinfo.Length.ToString());        Response.ContentType = "application/octet-stream";        Response.Filter.Close();        Response.WriteFile(filepathinfo.FullName);        Response.End();      }

下面看一下,下載界面的布局文件吧

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DownFile.aspx.cs" Inherits="DownFile" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  <title></title></head><body>  <form id="form1" runat="server">    <asp:ImageButton ID="ImageButton_Up" runat="server" Height="56px" OnClick="ImageButton_Up_Click" ToolTip="Upload" Width="90px" />               <asp:ImageButton ID="ImageButton_Down" runat="server" Height="52px" OnClick="ImageButton_Down_Click" style="margin-top: 0px" ToolTip="Download" Width="107px" />         <div>    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>    <br />    <asp:ListBox ID="ListBox1" runat="server" Height="169px" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged" Width="371px"></asp:ListBox>  </div>  </form></body></html>

 然后是具體的邏輯代碼實現

 

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;public partial class DownFile : System.Web.UI.Page{  protected void Page_Load(object sender, EventArgs e)  {    if (!Page.IsPostBack)//the first time to load    {      //get all the file in File folder      String[] AllTxt = Directory.GetFiles(Server.MapPath("File"));      foreach (String name in AllTxt)      {        ListBox1.Items.Add(Path.GetFileName(name));      }    }  }  protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)  {    //make use of sssion to save the selected file in the listbox with the key of "select"    Session["select"] = ListBox1.SelectedValue.ToString();  }  protected void ImageButton_Down_Click(object sender, ImageClickEventArgs e)  {    //judge weather user choose at least one file    if (ListBox1.SelectedValue != "")    {      //get the path of the choosed file      String FilePath = Server.MapPath("File/") + Session["select"].ToString();      //initial the object of Class FileInfo and make it as the package path      FileInfo filepathinfo = new FileInfo(FilePath);      //judge weather the file exists      if (filepathinfo.Exists)      {        //save the file to local        Response.Clear();        Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(filepathinfo.Name));        Response.AddHeader("Content-length", filepathinfo.Length.ToString());        Response.ContentType = "application/octet-stream";        Response.Filter.Close();        Response.WriteFile(filepathinfo.FullName);        Response.End();      }      else      {        Page.RegisterStartupScript("sb", "<script>alert('Please choose one file,sir!')</script>");      }    }  }  protected void ImageButton_Up_Click(object sender, ImageClickEventArgs e)  {    Response.Redirect("Default.aspx");  }}

注意:
最終的上傳的文件將會在根目錄下的File文件夾下看到,下載的時候也是從這個文件夾下進行下載的。

總結:
經過這個小項目的實踐,我看到了session給編程帶來的便利,也體會到了FileUpload控件的威力;然而這并不是全部,這里僅僅是冰山一角而已,希望大家繼續學習,一起進步一起提高!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 线观看免费完整aaa 欧美在线一级 | 午夜丰满少妇高清毛片1000部 | 综合国产在线 | 沉沦的校花奴性郑依婷c到失禁 | 久草在线综合网 | 国产午夜网 | 成人444kkkk在线观看 | 美女在线观看视频一区二区 | 久久久中精品2020中文 | 综合网天天色 | 国产成人av免费看 | 澳门一级淫片免费视频 | 国产精品视频亚洲 | 舌头伸进添的我好爽高潮网站 | 91精品国产乱码久久久久久久久 | 亚洲网站在线观看 | 久久国产精品久久久久久电车 | 在线成人一区 | 色啪综合| 亚洲综人网 | 欧美成人一区二区三区电影 | 欧美成在线视频 | 久久久一二三 | 亚洲第一视频在线 | 中文字幕1区2区 | 曰韩在线视频 | 久草最新网址 | fc2国产成人免费视频 | 成人午夜在线免费观看 | 一级毛片在线免费播放 | 久久亚洲成人 | 成人午夜在线观看视频 | 羞羞视频免费观看网站 | 成人资源在线 | 久久久久免费精品 | 精品国产一区二区三区久久久蜜月 | 欧美aaaaa一级毛片在线 | 久久精品成人免费国产片桃视频 | 黄色片网站免费看 | 精品国产91久久久久 | 欧美一级在线免费 |