webForumDet fria alternativet

uppladdning av filer

.NET

4 svar · 529 visningar · startad av andreas_lindh

Medlem sedan jan. 20011 140 inlägg
Frågan#1

jag har en sida där man kan ladda upp filer
koden ser ut så här

Dim strFileName As String
        Dim strFilePath As String
        Dim strFolder As String
        Dim fil As String

        strFolder = "d:\inetpub\wwwroot\tibroik.net\uFiler\"

        'Get the name of the file that is posted.
        strFileName = tbFil.PostedFile.FileName
            strFileName = Path.GetFileName(strFileName)

            'Create the directory if it does not exist.
            If (Not Directory.Exists(strFolder)) Then
                Directory.CreateDirectory(strFolder)
            End If

            'Save the uploaded file to the server.
            strFilePath = strFolder & strFileName
            If File.Exists(strFilePath) Then
            lblUploadResult.Text = strFileName & " <span style=""color:#ff0000"">Finns redan på servern. Byt namn på filen eller ta bort den gamla.</span><br />"
            Else
            tbFil.PostedFile.SaveAs(strFilePath)
            lblUploadResult.Text = "<span style=""color:#3D6F0D"">" & strFileName & " Upplagd på servern.</span><br />"
            End If

            'Display the result of the upload.
            frmConfirmation.Visible = True
        fil = strFileName

Det här fungerar bra.

Jag ska även lägga till filen i databasen och då har jag gjort så här

If (Not File.Exists(strFilePath)) Then
            Dim strsql As String = "insert into uFiler(LagID,vilken,fil,upLoader) values (" & lagID & ",'" & vilken & "','" & fil & "'," & uploader & ")"
            Dim objcmd As New OdbcCommand(strsql, objconn)

            objcmd.Connection.Open()
            objcmd.ExecuteNonQuery()
            objcmd.Connection.Close()
            lblResultat.Text = "<span style=""color:#3D6F0D"">Filen uppladdad</span>"
        End If

Detta fungerar inte. Även om filen inte finns så skrivs det inte in något i databasen

Hur ska jag göra för att det här ska fungera?

Medlem sedan juni 20011 732 inlägg
#2

Om du ska ladda upp filer i din db så tror jag att du måste streama upp dem som binärkod. Sök på BLOB (binary nånting... en teknik för att ladda upp filer i databaser) på Google för mer information, jag har aldrig gjort det själv så jag vet inte riktigt hur det fungerar.

/Red: glöm det jag skrev här om någon hann läsa... :)

Medlem sedan jan. 20011 140 inlägg
#3

Jag kanske var lite otydlig. Jag vill inte ladda upp själva filen i databasen utan bara sökvägen.
Det är det som inte fungerar

Innan jag laddar upp filen kollar jag om den redan finns på servern. Om den gör det skrivs ett meddelande ut.

Det är det jag försöker kolla i med If (Not File.Exists(strFilePath)) Then
jag vill alltså inte lägga till sökvägen i databasen om filen inte laddas upp (redan finns på servern)

Medlem sedan dec. 19996 522 inlägg
#4

Då borde det vara något fel på If (Not File.Exists(strFilePath)) Then,så att koden inte körs. Skriv ut pathen innan så ser du om det är rätt path

Medlem sedan jan. 20011 140 inlägg
#5

Kom på varför det inte fungerade.
jag kollade ju om filen fanns efter jag laddat upp den och då finns den ju.
Därför las den inte in i databasen

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)