Inserire un'immagine in un db Sql Express 2005

mercoledì 13 febbraio 2008 - 19.37

kduhcm Profilo | Junior Member

Ciao ragazzi,
come faccio a inserire un'immagine in un db Sql Express 2005 da una pagina asp.net?

TABLE [dbo].[FotoUtenti](
[UserID] [nvarchar](50) COLLATE Korean_Wansung_CS_AS NOT NULL,
[Immagine] [image] NULL,

totti240282 Profilo | Guru

http://www.oracle.com/technology/sample_code/tech/windows/odpnet/howto/anonyblock/index.html
C'è solo un capitano !!!!!!

kduhcm Profilo | Junior Member

Ok, praticamente dovrei leggere il file con la classe stream e inserirlo nel campo database di tipo Image. Mi sembra di aver capito che posso inserire qualsiasi file in questo modo anche un .doc ad esempio (correggetemi se sbaglio). E se invece volessi leggere il campo image e visualizzarlo in una pagina asp.net?

martinez Profilo | Senior Member

Ciao
Scusa se mi intrometto ... ma trattandosi del web secondo me la strada da seguire non è quella di salvare l'immagine nel DB ma di referenziare all'interno del DB SOLO il percorso dell'immagine per poter fare quello che si vuole con lei (visualizzazione, modifica ed eleminazione) e salvare con l'aiuto della classe System.IO sul server le immagini ...

questo renderebbe molto più snello il tuo lavoro accorciando anche i tempi di attesa di chi carica la pagina ... (immagina 10 immagini 200x200) quanto tempo occorre per fare streaming e paragonale al tempo che occorre per caricarle con dei semplici link <img /> .

Spero di essere stato chiaro e soprattutto d'aiuto :)

kduhcm Profilo | Junior Member

Ciao, ogni consiglio e' ben accetto visto che sono completamente a digiuno sull'argomento .

Praticamente vorrei arrivare a fare una applicazione di e-commerce che prevede una gestione articoli (inserimento/cancellazione ecc) da parte dell'amministratore del sito dove a ogni articolo e' associata un'immagine. Inoltre quando il cliente cerca gli articoli dovrei fargli vedere l'immagine dell'articolo. Questo e' l'ambizioso obiettivo finale ma ora sto cominciando dall'abc in quanto non ho la minima idea di come gestire la cosa nel modo piu ottimale.

martinez Profilo | Senior Member

Bene,

Io non sono un guru

però quello che vuoi fare tu ... lo faccio come ti ho detto prima

nel DB non carico l'immagine ma solo l'URL alla quale puntare per visualizzarla ... creo una cartella con accesso in scrittura e lettura sul server e qui attraverso System.IO ne manipolo i contenuti ... upload, download, cancellazione e aggiornamento del nome file.

nel DB creo un campo testo (nvarchar(x)) che contiene il nome del file immagine da recupoerare ... il resto lo faccio gestire dal tag <img /> al momento della visualizzazione della pagina ...

se questa cosa ti piace ... e se magari qualcuno non ha metodi migliori da suggerire (così imparo anch'io ) sono qui chiedi pure

Ciao!

kduhcm Profilo | Junior Member

ok... potresti postarmi un esempio di codice di come gestisci l'upload dell'immagine sul server, il salvataggio dell'url nel db e il rendering successivo dell'immagine nella pagina per visualizzarla?

martinez Profilo | Senior Member

Ciao

non ho tutto questo tempo a disposizione scusami

ma prometto che se posso lo faccio intanto:

http://msdn2.microsoft.com/it-it/library/system.io.directoryinfo.aspx trovi informazioni su come manipolare directory

http://msdn2.microsoft.com/it-it/library/system.io.directoryinfo_members.aspx tutti i membri della classe directoryinfo

http://msdn2.microsoft.com/it-it/library/system.io.directoryinfo.getfiles.aspx in particolar modo ti serve per ottenere l'elenco di file da una cartella

http://msdn2.microsoft.com/it-it/library/system.io.fileinfo.aspx la classe per la manipolazione dei file

http://msdn2.microsoft.com/it-it/library/ms227677(VS.80).aspx cenni preliminari per l'upload

http://msdn2.microsoft.com/it-it/library/ms227669(VS.80).aspx procedura per l'upload sul server

dopo questa bella lettura prova a seguire questi piccoli passi per cominciare a ragionare sui file

crea una piccola classe nella tua cartella App_Code dal nome ManagIMG

e copia dentro queste istruzioni:

using System; using System.IO; using System.Data; using System.Configuration; 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; /// <summary> /// Descrizione di riepilogo per ManagIMG /// </summary> public class ManagIMG { // utilizza una direttori che a te fa piacere ... riempila di file immagine // ricorda che deve avere permessi di scrittura e lettura e usala al posto di @"C:\myDir" :) private DirectoryInfo DirInf = new DirectoryInfo(@"C:\myDir\"); public ManagIMG() { } // ti fornisce tutti i file presenti nella cartella public FileInfo[] GetAllFile() { FileInfo[] FilInf = DirInf.GetFiles("*.*"); return FilInf; } }

dopo crea una nuova pagina ASPX e copia ed incolla queste righe nel form ....

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

per la gestione del database è un database classico con un campo testo che indica il nome del file immagine da visualizzare che poi userai nel template che mostra i tuoi dati attraverso il tag <img />


spero di aver chiarito ... fammi sapere

kduhcm Profilo | Junior Member

Ok, ti ringrazio sei stato gentilissimo

martinez Profilo | Senior Member

di nulla ...

se la risposta è stata esaudiente potresti chiudere il post?

grazie e saluti!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5