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