⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 repositoryfile.cs

📁 大文件上传组件
💻 CS
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using Krystalware.SlickUpload.Configuration;
using Krystalware.SlickUpload.Streams;

public class RepositoryFile
{
    static string _cnString;
    static string _table;
    static string _keyField;
    static string _nameField;
    static string _dataField;
    
    int _id;
    string _name;
    long _length;

    public int Id
    {
        get
        {
            return _id;
        }
    }

    public string Name
    {
        get
        {
            return _name;
        }
    }

    public long Length
    {
        get
        {
            return _length;
        }
    }

    static RepositoryFile()
    {
        NameValueConfigurationSection section = SlickUploadConfiguration.UploadStreamProvider;

        string connectionStringName = section["connectionStringName"];

        if (!string.IsNullOrEmpty(connectionStringName))
            _cnString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
        else
            _cnString = section["connectionString"];

        _table = section["table"];
        _keyField = section["keyField"];
        _nameField = section["fileNameField"];
        _dataField = section["dataField"];
    }

    public RepositoryFile(int id, string name, long length)
    {
        _id = id;
        _name = name;
        _length = length;
    }

    public Stream GetDataStream()
    {
        return new SqlClientOutputStream(_cnString, _table, _dataField, _keyField, _id);
    }

    public static List<RepositoryFile> GetAll()
    {        
        List<RepositoryFile> files = new List<RepositoryFile>();

        using (IDbConnection cn = new SqlConnection(_cnString))
        using (IDbCommand cmd = cn.CreateCommand())
        {
            cmd.CommandText = "SELECT " + _keyField + ", " + _nameField + ", CAST(DATALENGTH(" + _dataField + ") AS bigint) AS Length FROM " + _table;

            cn.Open();

            using (IDataReader rd = cmd.ExecuteReader(CommandBehavior.SingleResult))
            {
                while (rd.Read())
                {
                    files.Add(new RepositoryFile(rd.GetInt32(0), rd.GetString(1), rd.GetInt64(2)));
                }
            }
        }

        return files;
    }

    public static RepositoryFile GetById(int id)
    {
        using (IDbConnection cn = new SqlConnection(_cnString))
        using (IDbCommand cmd = cn.CreateCommand())
        {
            cmd.CommandText = "SELECT " + _nameField + ", CAST(DATALENGTH(" + _dataField + ") AS bigint) AS Length FROM " + _table + " WHERE " + _keyField + "=" + id.ToString();

            cn.Open();

            using (IDataReader rd = cmd.ExecuteReader(CommandBehavior.SingleRow))
            {
                if (rd.Read())
                {
                    return new RepositoryFile(id, rd.GetString(0), rd.GetInt64(1));
                }
                else
                {
                    return null;
                }
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -