[RISOLTO]Salvataggio file su db

di il
1 risposte

[RISOLTO]Salvataggio file su db

Ciao,

devo salvare dei file di varia estensione sul db in un campo varbinary.

Ho fatto un po' di tentativi senza successo, questo è l'ultimo che non sembra molto lontano dal successo.

string filePath = Request.Files.Get(0).FileName; 

byte[] file;
var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
var reader = new BinaryReader(stream);
file = reader.ReadBytes((int)stream.Length);
                
DocumentoDataManager dm = new DocumentoDataManager();
long idDocumento = dm.aggiungiNuovoDocumento(id, file, note, idOrigine);
                
E poi l'insert a cui però non sono mai arrivato.
 
 public long aggiungiNuovoDocumento(long id, Byte[] contents, String note, long? idOrigine)
 {
            var ctx = new PatrimonioEntities();
            var dbContextTransaction = ctx.Database.BeginTransaction();
            long idDocumento = -1;
            try
            {
                Documento documento = new Documento();
                documento.idC= idC;
                documento.documentoBinary = contents;
                documento.note = note;
                if (idOrigine != null)
                    documento.idOrigine = idOrigine;
                ctx.Documento.Add(documento);
                ctx.SaveChanges();

                idDocumento = documento.idDocumento;

                dbContextTransaction.Commit();
            }
            catch (Exception e)
            {
                dbContextTransaction.Rollback();
                throw (e);
            }
            return idDocumento;
}

Il primo pezzo fallisce con questo errore

[FileNotFoundException: Il file 'C:\Program Files (x86)\IIS Express\2018-05-15.png' non è stato trovato.]

perché qui dentro
string filePath = Request.Files.Get(0).FileName; 
ci mette solo il nome del file, non ci ho trovato riferimenti al path reale dello stesso sulla macchina.

Avete idea di come si faccia?

Grazie per l'aiuto

1 Risposte

  • Re: [RISOLTO]Salvataggio file su db

    Aggiornamento


    Sono riuscito a salvare qualcosa usando questo codice

                    byte[] file;
                    var stream = Request.Files.Get(0).InputStream;
                    var reader = new BinaryReader(stream);
                    file = reader.ReadBytes((int)stream.Length);
    da qui a essere sicuro di aver salvato qualcosa di utile a ripristinare il file ce ne passa però eh

    Comunque sto facendo la get del file. Comunque se ci date un'occhiata è meglio. Vi sembra corretto?
Devi accedere o registrarti per scrivere nel forum
1 risposte