C# Dateien hoch- und herunterladen (als Binärstream in der Datenbank speichern)

大家讲道理
Freigeben: 2016-11-10 14:54:10
Original
2400 Leute haben es durchsucht

1. Schreiben Sie die Datei im Binärstream-Format in die Datenbank.

Erstens den Dateipfad abrufen, dann die Datei im Binärformat lesen und in einem Binärarray speichern, eine Verbindung mit der Datenbank herstellen und eingeben Weisen Sie das binäre Array dem entsprechenden Parameter zu, um den Schreibvorgang der Datei in die Datenbank abzuschließen

/// 将文件流写入数据库  
/// </summary>  
/// <param name="filePath">存入数据库文件的路径</param>  
/// <param name="id">数据库中插入文件的行标示符ID</param>  
/// <returns></returns>  
public int UploadFile(string filePath, string id)  
{  
    byte[] buffer = null;  
    int result = 0;  
    if (!string.IsNullOrEmpty(filePath))  
    {  
        String file = HttpContext.Current.Server.MapPath(filePath);   
        buffer = File.ReadAllBytes(file);  
        using (SqlConnection conn = new SqlConnection(DBOperator.ConnString))  
        {  
            using (SqlCommand cmd = conn.CreateCommand())  
            {  
                cmd.CommandText = "update DomesticCompanyManage_Main_T set ZBDocumentFile = @fileContents where MainID =&#39;" + id + "&#39;";;  
                cmd.Parameters.AddRange(new[]{  
                new SqlParameter("@fileContents",buffer)  
            });  
                conn.Open();  
                result = cmd.ExecuteNonQuery();  
                conn.Close();  
            }  
        }  
        return result;  
    }  
    else 
        return 0;  
}
Nach dem Login kopieren

2. Lesen Sie die Datei aus der Datenbank und erstellen Sie eine Datei im entsprechenden Format

Aus der Datenbank Um eine Datei zu lesen, erstellen Sie einfach die entsprechende Datei entsprechend dem erforderlichen Pfad und schreiben Sie dann den in der Datenbank gespeicherten Binärstrom in die neue Datei

Wenn sich eine Datei mit demselben Namen in der befindet Verzeichnis, die Originaldatei überschreibt

//从数据库中读取文件流  
//shipmain.Rows[0]["ZBDocument"],文件的完整路径  
//shipmain.Rows[0]["ZBDocumentFile"],数据库中存放的文件流  
if (shipmain.Rows[0]["ZBDocumentFile"] != DBNull.Value)  
{  
    int arraySize = ((byte[])shipmain.Rows[0]["ZBDocumentFile"]).GetUpperBound(0);  
    FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(shipmain.Rows[0]["ZBDocument"].ToString()), FileMode.OpenOrCreate, FileAccess.Write);//由数据库中的数据形成文件  
    fs.Write((byte[])shipmain.Rows[0]["ZBDocumentFile"], 0, arraySize);  
    fs.Close();  
}
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage