62 messaggi dal 27 agosto 2004
Qualcuno può aiutarmi sto salvando delle preview di immagni su Access in un campo oledb come array di byte.
prima creo una miniatura tramite il metodo GetThumbnailImage e poi salvo i byte in un MemoryStream nel campo db.
Il problema è che se salvo direttamente lo stream nel db il formato del file non viene più riconsciuto

per esempio
MemoryStream bw = Utilita.CreateThumbnail(f);
dati = new byte[bw.Length];
bw.Read(dati, 0, dati.Length);
quando recupero il file da db mi da errore di formato (parametro mancante)


se invece salvo prima in un file su disco tramite FileStream
e poi ricarico il file da disco inserendolo nel db funziona correttamente.

Esempio:
using (FileStream f = new FileStream(FullNomeFile, FileMode.OpenOrCreate, FileAccess.Read))
{
Utilita.CreateThumbnail(f, Path.Combine(tempPat, Path.GetFileNameWithoutExtension(FullNomeFile) + ".bmp"));
}

using (FileStream f = new FileStream(Path.Combine(tempPat, Path.GetFileNameWithoutExtension(FullNomeFile) + ".bmp"), FileMode.Open, FileAccess.Read))
{
dati = new byte[f.Length];
f.Read(dati, 0, (int)f.Length);
f.Flush();

}

Grazie
Così a naso direi che non resetti la posizione del MemoryStream:
MemoryStream bw = Utilita.CreateThumbnail(f);
bw.Position = 0;


E' questa l'origine del male?
62 messaggi dal 27 agosto 2004
Esatto!!

Grazie mille la stanchezza mi mi fa dimenticare le cose più ovvie!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.