Normalerweise müssen die von Benutzern hochgeladenen Bilder in der Datenbank gespeichert werden. Grundsätzlich gibt es zwei Lösungen: 1. Speichern Sie den Pfad, unter dem das Bild in der Datenbank gespeichert ist. 2. Schreiben Sie das Bild in Form eines binären Datenstroms direkt in das Datenbankfeld. Hier sind die spezifischen Methoden: 1. Speichern Sie den Upload-Pfad des Bildes in der Datenbank: string uppath="";//Wird zum Speichern des Bild-Upload-Pfads verwendet//Ruft den Dateinamen des hochgeladenen Bildes ab string fileFullname = this.FileUpload1.FileName; // Uhrzeit abrufen, zu der das Bild hochgeladen wurde. Die Verwendung der Uhrzeit als Name des Bildes kann verhindern, dass die Bilder denselben Namen haben string dataName = DateTime.Now.ToString("yyyyMMddhhmmss"); //Bilddateinamen abrufen (ohne Erweiterung) Zeichenfolge Dateiname = Vollständiger Dateiname.Teilzeichenfolge(Vollständiger Dateiname.LetzterIndexvon("\\") + 1); //Bilderweiterungszeichenfolge abrufen Typ = fileFullname.Substring(fileFullname.LastIndexOf(".") + 1); //Beurteilen, ob es das erforderliche Format ist (Typ == "bmp" || Typ == "jpg" || Typ == "jpeg" || Typ == "gif" || Typ == "JPG" || Typ == "JPEG" || Typ == "BMP" || Typ == "GIF") { //Laden Sie das Bild in den Ordner mit dem angegebenen Pfad hoch this.FileUpload1.SaveAs(Server.MapPath("~/upload") + "\\" + dataName + "." + type); //Speichern Sie den Pfad in einer Variablen und speichern Sie den Wert der Variablen im entsprechenden Feld in der Datenbank uppath = "~/upload/" + dataName + "." + type; } 2. Speichern Sie das Bild als binären Datenstrom direkt in der Datenbank: Referenzieren Sie den folgenden Namespace: mit System.Drawing; mit System.IO; mit System.Data.SqlClient; Beim Entwurf einer Datenbank ist der entsprechende Feldtyp in der Tabelle iamge speichern: //Bildpfad string strPath = this.FileUpload1.PostedFile.FileName.ToString(); //Bild lesen FileStream fs = new System.IO.FileStream(strPath, FileMode.Open, FileAccess.Read); BinaryReader br = neuer BinaryReader(fs); byte[] foto = br.ReadBytes((int)fs.Length); br.Schließen(); fs.Schließen(); //In SqlConnection speichern myConn = neue SqlConnection("Datenquelle=.;Initialkatalog=stumanage;Benutzer-ID=sa;Passwort=123"); string strComm = " INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary )"; //Datenbankanweisungen ausführen und SqlCommand nach Bedarf ändern myComm = new SqlCommand(strComm, myConn); myComm.Parameters.Add("@photoBinary", SqlDbType.Binary, Foto.Länge); myComm.Parameters["@photoBinary"].Wert = Foto; myConn.Open(); wenn (myComm.ExecuteNonQuery() > 0) { dies.Label1.Text = "ok"; } myConn.Close(); Lesen: ...Verbindung zur Datenbank herstellen und dabei mycon.Open() weglassen. SqlCommand-Befehl = neu SqlCommand("select stuimage from stuInfo where stuid=107", mycon); //Ändern Sie die Abfrageanweisung nach Bedarf byte[] image = (byte[])command.ExecuteScalar (); //Geben Sie den Speicherpfad und den Namen des aus der Datenbank gelesenen Bildes an. String strPath = "~/Upload/zhangsan.JPG"; Zeichenfolge strPhotoPath = Server.MapPath(strPath); //Speichern Sie die Bilddatei unter dem obigen Pfad und Namen. BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate)); bw.Write(Bild); bw.Schließen(); //Bild anzeigen this.Image1.ImageUrl = strPath; //Diese beiden Methoden können je nach tatsächlichem Bedarf flexibel ausgewählt werden. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: Virtual Box-Tutorialdiagramm zum Duplizieren virtueller Maschinen
>>: jQuery implementiert die Formularvalidierung
Während der Systemwartung müssen Sie möglicherwei...
<br />Dieser Artikel gibt Ihnen eine kurze E...
Vorwort Bei der Projektfreigabe ist immer eine Ve...
Mithilfe von Nginx-Protokollen lassen sich Benutz...
Die Grundlagen der MySQL-Wissenspunkte für die Co...
Inhaltsverzeichnis Vorwort 1. Vorbereitung 2. Ins...
Der Code demonstriert die horizontale Zusammenfüh...
CentOS 8 ist jetzt verfügbar! Die Versionen von C...
Temporäre MySQL-Tabellen sind sehr nützlich, wenn...
Inhaltsverzeichnis 1. Vorteile von Proxy gegenübe...
Seit Kurzem besteht im Projekt die Anforderung, B...
In diesem Artikel wird der spezifische Code des W...
Was sind Slots? Die Slot-Direktive ist v-slot, di...
Inhaltsverzeichnis Vorwort Modifikatoren des V-Mo...
Heutzutage ist das Kopieren von Websites im Intern...