Benutzer mit den meisten Antworten
Dateien aus MS SQL-Server 2000 image-Datentyp mit APS.Net vb 20005 auslesen, als Datei speichern und öffnen.

Frage
-
Das Ein- und Auslesen der Dateien funktioniert auf meinem Entwicklerarbeitsplatz ohne Probleme. Veröffentlicht auf einem MS IIS 6.0-Server und als Webseite aufgerufen werden die Dateien nicht im angegebenen Verzeichnis abgelegt.
Hier mein VB-Code:
Public Sub SaveBlobAsFile()
If Directory.Exists("c:\Validierungsdatenbank") Then
Me.Meldung.Text = "Verzeichnis Validierungsdatenbank war angelegt!"
Else
Me.Meldung.Text = "Verzeichnis Validierungsdatenbank war nicht angelegt!"
Directory.CreateDirectory(
"c:\Validierungsdatenbank")
End If
Dim commGetBlob As New SqlCommand("Select Dokument from Dokumentenspeicher where ID=" & GridView1.Rows(GridView1.SelectedIndex).Cells(1).Text, m_conn)
Dim commGetPfad As New SqlCommand("Select DokBezeichnung from Dokumentenspeicher where ID=" & GridView1.Rows(GridView1.SelectedIndex).Cells(1).Text, m_conn)
Dim fs As Stream
Try
m_conn.Open()
'Explizite Konvertierung von Object zu Byte()
Dim arrGetBlob() As Byte = CType(commGetBlob.ExecuteScalar(), Byte())
Me.Meldung.Text = "c:\Validierungsdatenbank\" & Convert.ToString(commGetPfad.ExecuteScalar())
fs =
New FileStream("c:\Validierungsdatenbank\" & Convert.ToString(commGetPfad.ExecuteScalar()), FileMode.OpenOrCreate, FileAccess.Write)
Dim bw As New BinaryWriter(fs)
bw.Write(arrGetBlob)
bw.Flush()
bw.Close()
arrGetBlob =
Nothing
bw =
Nothing
''***Start eines Prozesses und warten auf den Abschluá********
'Dim procID As Integer
'Dim newProc As Diagnostics.Process
'newProc = Diagnostics.Process.Start("c:\Validierungsdatenbank\" & Convert.ToString(commGetPfad.ExecuteScalar()))
'procID = newProc.Id
'newProc.WaitForExit()
'Dim procEC As Integer = -1
'If newProc.HasExited Then
' procEC = newProc.ExitCode
'End If
''MsgBox("Process with ID " & CStr(procID) & _
'' " terminated with exit code " & CStr(procEC))
''MsgBox("BLOB in Datei gespeichert.")
Catch ex As DirectoryNotFoundException
If CBool(InStr(ex.Message, "konnte nicht gefunden werden", CompareMethod.Text)) Then
Me.Meldung.Text = ex.Message
End If
Catch ex As Exception
Me.Meldung.Text = ex.Message
Finally
m_conn.Close()
fs =
Nothing
GC.Collect()
End Try
End Sub
Antworten
Alle Antworten
-
Hallo Frank,
nur damit wir uns richtig verstehen:
1) Der "XP-PC" ist der mit dem angesprochenen IIS?
2) Du erwartest nicht, dass auf einem dritten PC (nennen wir ihn "VISITOR"), von dem aus die Webseite im Browser abgerufen wird, irgendein Verzeichnis erstellt würde?
Richtig? -
Pass auf - mehrere Personen können Dateien gleichzeitig anfordern. Sprich die Dateinamen sollten erstens nicht kollidieren, zweitens wenn es persönliche Dateien sind: aufpassen daß die Dateinamen nicht für andere Personen geraten werden können (zB Hashes verwenden)
Chris