同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁(yè) 優(yōu)化推廣 ASP.NET下的多文件上傳

ASP.NET下的多文件上傳

來(lái)源: | 時(shí)間:2011/5/2 7:53:47 |

最近在做ASP.NET 2.0的應(yīng)用時(shí)候發(fā)現(xiàn)Session并不能很好的保存HtmlInputFile這個(gè)控件,具體表現(xiàn)是:如果客戶機(jī)和服務(wù)機(jī)是一臺(tái)的話(一般單機(jī)開(kāi)發(fā)情況都是這樣)Session能很好的保存任何對(duì)象,但是如果把項(xiàng)目發(fā)布部署到真正的服務(wù)器上Session只能保存很小的一筆數(shù)據(jù),對(duì)于稍微大點(diǎn)的文件就提示“無(wú)法訪問(wèn)已關(guān)閉的文件”,意思應(yīng)該是我的InputStream流早就關(guān)閉了,根本沒(méi)法再讀取了。查了一下ASP.NET 2.0Web.config的配置也都沒(méi)能解決這個(gè)現(xiàn)象,索性不用Session來(lái)存儲(chǔ)了,改成CacheViewState也能存儲(chǔ)只是需要更新到頁(yè)面,效率很低,所以沒(méi)有采用)。前面說(shuō)道了HtmlInputFile控件中包含了流對(duì)象,這樣控件無(wú)法被序列化也就沒(méi)有辦法直接保存到一個(gè)Cache對(duì)象中,所以我只好又寫(xiě)了一個(gè)表示文件的類(CustomFile)來(lái)保存上傳文件的相關(guān)信息。

類定義,FileBytes是二進(jìn)制文件的數(shù)據(jù)類型byte[],FileContentType文件MIME類型,FileSize文件的大小,FullFileName表示帶路徑的文件全名,最后還有一個(gè)SaveAs方法用來(lái)保存到服務(wù)器指定路徑中。 

接下來(lái)的事情就是要把CustomFile這個(gè)類的實(shí)例都保存到Cache中,以便以后一次全部上傳到服務(wù)器。這樣的工作筆者通過(guò)一個(gè)用戶控件來(lái)實(shí)現(xiàn),方便快捷。用戶通過(guò)“瀏覽”選擇本地文件,用“增加”把文件加載到指定Cache中,“刪除”可以刪除掉選擇錯(cuò)的文件。控件的截圖

 

控件就一個(gè)最重要的對(duì)外屬性GetFiles,通過(guò)這個(gè)方法可以獲取保存在Cache中的CustomFile數(shù)組(即表示多個(gè)上傳文件)。

還有一個(gè)方法Clear是上傳后來(lái)清空Cache的,非常重要一定要使用,否則還會(huì)繼續(xù)上傳上次已經(jīng)傳過(guò)的文件!?。?/span>

控件說(shuō)明

文件上傳控件IDFileUpload1

增加按鈕IDbtnAdd

刪除按鈕IDbtnDelete

文件列表IDLbFiles

 

源代碼:

 

public partial class FileUploadControl : System.Web.UI.UserControl

{

    /// <summary>

    /// 預(yù)先定義一個(gè)Cache名稱

    /// </summary>

    private string _vName = "MyFile";

    private ArrayList _FileInfo = new ArrayList();

 

    private CustomFile Files

    {

        set

        {

            if ( Cache["" + _vName + ""] != null )

            {

                _FileInfo = (ArrayList) Cache["" + _vName + ""];

            }

            else

                _FileInfo = new ArrayList();

            _FileInfo.Add( value );

 

            Cache["" + _vName + ""] = _FileInfo;

        }

    }

 

    /// <summary>

    /// 獲取自定義上傳文件類

    /// </summary>

    public CustomFile[ ] GetFiles

    {

        get

        {

           

服務(wù)熱線

153 8323 9821

功能和特性

價(jià)格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號(hào)