Upload e Lettura di File

venerdì 13 gennaio 2006 - 09.38

DemonDance Profilo | Newbie

Ciao a tutti,

ho un db SQLServer nel quale faccio l'upload di un file come array di byte salvandolo in un campo image della tabella,
quando vado a rileggere il file.......1) mi da' svariati errori come se il file venisse salvato male 2) mi salva solo 8 k,
di seguito il codice per il salvataggio e la lettura,

Qualcuno sa dirmi como posso risolvere?

<b>'qui dichiaro l'array di byte e lo riempio con il file selezionato</b>
Dim b(Request.Files.Item(0).InputStream.Length) As Byte
For j As Integer = 0 To Request.Files.Item(0).InputStream.Length - 1
b(j) = Request.Files.Item(0).InputStream.ReadByte
Next

<b>'salvo l'array di byte sul mio dataset e poi lo mando alla classe interessate che si occupa dell'upload</b>
Dim drAll As DataRow
If dsAllegato.Tables(0).Rows.Count = 0 Then
drAll = dsAllegato.Tables(0).NewRow()
Else
drAll = dsAllegato.Tables(0).Rows(0)
End If
'inerisci evento passando un dataset
'Aggiorna la riga
With drAll
.Item("id_evento") = Session("nuovoevento") 'intId
.Item("allegato") = b
.Item("nome_allegato") = nomeFile
End With
If dsAllegato.Tables(0).Rows.Count = 0 Then
dsAllegato.Tables(0).Rows.Add(drAll)
End If

Dim Insallegato As cAllegato = New cAllegato
Dim intAll As Integer = Insallegato.addAllegato(dsAllegato)
Insallegato.Dispose()

'qui leggo
If Not IsNothing(dsAllegato) Then
If dsAllegato.Tables(0).Rows.Count > 0 Then
Response.AddHeader("content-disposition", "attachment;filename=" & dsAllegato.Tables(0).Rows(0).Item("nome_allegato"))
For Each r As DataRow In dsAllegato.Tables(0).Rows
Dim b() As Byte = r.Item("allegato")
Response.OutputStream.Write(b, 0, b.Length)
Next
End If
End If


Grazie in anticipo a tutti quanti,

DemonDance Profilo | Newbie

Ciao Guru,

grazie anzitutto per la risposta,
ho porvato a fare esattamente come riportato negli esempi e ad3esso il salvataggio funziona correttamente ma se provo ad aprire il file salvato mi dice sempre che potrebbe essere danneggiato,
sai il perchè di questo?
Calcola che ho provato con vari file in vari formati.........



DemonDance

Brainkiller Profilo | Guru

>Ciao Guru,
>grazie anzitutto per la risposta,
>ho porvato a fare esattamente come riportato negli esempi e ad3esso
>il salvataggio funziona correttamente ma se provo ad aprire
>sai il perchè di questo?

Il problema probabilmente non è il formato del file ma il fatto che non viene uploadato completamente o scaricato completamente il file. Ossia su un file di 100.000 byte evidentemente la tua procedura ne carica solo 99.950. Che succede che quando lo rileggi e lo riscrivi su disco, e poi lo apri, il programma che lo legge noterà che non è completo e quindi ti segnalerà che probabilmente è danneggiato.

Verifica le tue procedure di upload/download (passami i termini) dal DB.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5