Jag får inte min upload att funka. I min access databas "olle.mdb" har jag 2 recordset "Id" och "bild". Jag har snöat länge med detta. Vad är det som är fel, kan nån hjälpa mig med lite kod.
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveVirtual("d:/clients/guldfot.nu/wwwroot/bilder")
Set File = Upload.Files(1)
filtyp = File.ImageType
filstorlek = File.Size
bild = upload.Form("FILE")
If filtyp = "GIF" or filtyp = "JPG" or filtyp = "gif" or filtyp = "jpg" Then
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\clients\guldfot.nu\wwwroot\data\olle.mdb"
SQLStmt = "Insert into tabell "
SQLStmt = SQLStmt & " (bild)"
SQLStmt = SQLStmt & " Values('" & bild & "')"
Connection.Execute(SQLStmt)
SET SQLStmt = Nothing
SQLStmt = "Select Max(Id) as senasteid from tabell"
SET RS = Connection.Execute(SQLStmt)
senasteid = RS("senasteid")
RS.Close
SET SQLStmt = Nothing
If file.ImageType = "gif" Then
extension = "gif"
elseif file.ImageType = "jpg" Then
extension = "jpg"
elseif file.ImageType = "GIF" Then
extension = "gif"
elseif file.ImageType = "JPG" Then
extension = "jpg"
End If
filnamn = "bild" & senasteid & extension
For Each File in Upload.Files
File.Copy "d:\clients\guldfot.nu\wwwroot\bilder\bild" & senasteid & extension
File.Delete
Next
SQLStmt = "Update tabell "
SQLStmt = SQLStmt & " SET Filnamn = '" & Filnamn & "'"
SQLStmt = SQLStmt & " Where Id = " & senasteid
Connection.Execute(SQLStmt)
SET SQLStmt = Nothing
Connection.Close
End If
%>
Vad är det som strlar? Hamnar inte bilden på servern, eller sparas inte informationen i db'n?
Försök först att bara ladda upp bilden, sedan kan du mixtra med databasen.
Det jag snabbt kan se är följande:
-> Set File = Upload.Files(1)
ska det inte vara
->Set File = Upload.Files(0)
Om du bara har en fil?
Ett litet tips:
du behöver inte bry dig om att döpa om filerna till jpg eller gif. Du kan isjälva verket kalla dom vad du vill, för filtypsinformationen finns i bildnamnet.
Kan vara att skrivrättigheter saknas där bilden skall sparas.
Inte nödvändigtvis....det är bra att kolla
Jaha ? .jpg .gif .png är ju dom bilder man använder, och i dom står bildinformationen.
Ta en bild ex. jaguar.jpg och döp om den till jaguar.gif funkar perfekt.
(nu kollar han ju innan att det bara sker en uppladdning av jpg o gif)
Det jag menar är att du kan ta en bild ex. jaguar.jpg och döpa om den till jaguar.gif
Vad jag menar är att bildformatet / kodningen finns i bildinformationen, och har egentligen inget att göra med filändelsen, som är till för op-systemet.
Webbläsarna klarar av att visa den ändå. Nu vet jag inte om det finns någon större vits med det...
Tjena @nders, givetvis skall jag dela med mig. Vad var fel? Jag hade glömt ("hjärnsläpp")att lägga till 3 recordset i min databas (info, filnamn och storlek).
I nedanstående kod har jag också lagt till nya poster som skall läggas in. Det som händer är att bilden som laddas upp får namnet bild+id+filändelse och hamnar i recordset(filnamn). Tex om jag laddar upp en bild som heter namn.gif och är den fjärde bilden (id=4)får bilden namnet "bild4.gif".
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveVirtual("bilder")
Set File = Upload.Files(1)
filtyp = File.ImageType
filstorlek = File.Size
info = upload.Form("info")
plats = upload.Form("plats")
ingang = upload.Form("ingang")
utgang = upload.Form("utgang")
typ = upload.Form("typ")
If filtyp = "GIF" or filtyp = "JPG" or filtyp = "gif" or filtyp = "jpg" Then
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\clients\guldfot.nu\wwwroot\data\olle.mdb"
SQLStmt = "Insert into tabell "
SQLStmt = SQLStmt & " (info, storlek, plats, ingang, utgang, typ)"
SQLStmt = SQLStmt & " Values('" & beskrivning & "', " & filstorlek & ", '" & plats & "', '" & ingang & "', '" & utgang & "', '" & typ & "')"
Connection.Execute(SQLStmt)
SET SQLStmt = Nothing
SQLStmt = "Select Max(Id) as senasteid from tabell"
SET RecordSet = Connection.Execute(SQLStmt)
senasteid = RecordSet("senasteid")
RS.Close
SET SQLStmt = Nothing
If file.ImageType = "gif" Then
extension="." & LCase(File.Imagetype)
elseif file.ImageType = "jpg" Then
extension="." & LCase(File.Imagetype)
elseif file.ImageType = "GIF" Then
extension="." & LCase(File.Imagetype)
elseif file.ImageType = "jpg" Then
extension="." & LCase(File.Imagetype)
End If
filnamn = "bild" & senasteid & extension
For Each File in Upload.Files
File.Copy "d:\clients\emerc1.nu\wwwroot\bilder\bild" & senasteid & extension
File.Delete
Next
SQLStmt = "Update tabell "
SQLStmt = SQLStmt & " SET Filnamn = '" & Filnamn & "'"
SQLStmt = SQLStmt & " Where Id = " & senasteid
Connection.Execute(SQLStmt)
SET SQLStmt = Nothing
Connection.Close
End If
%>
------------------
manne
143 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe