aleborgMedlem sedan jan. 20013 341 inlägg Jag har installerat komponenten aspSmartUpload från http://www.aspsmart.com
Jag har en Form som ska ladda upp filer till en katalog och samtidigt lägga in text i en databas.
Hur ska sidan som tar emot se ut?
Och hur gör jag för att spara namnen på filerna som laddas upp i databasen?
motagarsidan ser ut så här idag:
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
SQL= "SELECT * FROM Produkter WHERE 1=2"
rs.Open SQL,Conn,1,2
rs.AddNew
rs("Produktnamn")=Request.Form("rubr")
rs("Paradtext")=Request.Form("paradtext")
rs("Paradbild")=Request.Form("FILE1")
rs("Beskr")=Request.Form("beskr")
rs("Beskr2")=Request.Form("beskr2")
rs("Beskr3")=Request.Form("beskr3")
rs("Pris")=Request.Form("pris")
rs("Hojd")=Request.Form("hojd")
rs("Bredd")=Request.Form("bredd")
rs("Djup")=Request.Form("djup")
rs("Artnr")=Request.Form("artnr")
rs("Fotografi")=Request.Form("FILE2")
rs("Fotografi1")=Request.Form("FILE3")
rs("Fotografi2")=Request.Form("FILE4")
rs("Ssfintyg")=Request.Form("ssf")
rs("KategID")=Request.Form("kategid")
rs("Pdffil")=Request.Form("FILE5")
rs.Update
%>
Datan som ska ta emot filerna(FILE1, FILE2, FILE3, FILE4, FILE5) ska se ut så här:
<%
' Variables
' *********
Dim mySmartUpload
Dim intCount
' Object creation
' ***************
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Upload
' ******
mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server
' ****************************************************************************
intCount = mySmartUpload.Save("../picup")
' sample with a physical path
' intCount = mySmartUpload.Save("c:\temp\")
' Display the number of files uploaded
' ************************************
Response.Write(intCount & " file(s) uploaded.")
%>
Hur kombinerar jag dom?
@ndersMedlem sedan juni 200032 969 inlägg egentligen lite precis som du vill, den ena ovanför den andra eller tvärsom. kom ihåg två saker dock: skapa objektet mySmartUpload överst på sidan och använd istället för request.form:
mySmartUpload.Form("rubr")
fattaru?
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
aleborgMedlem sedan jan. 20013 341 inlägg Japp, det gör jag men hur gör jag för att spara filnamnet i databasen?
<%
' Variables
' *********
Dim mySmartUpload
Dim intCount
' Object creation
' ***************
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Upload
' ******
mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server
' ****************************************************************************
intCount = mySmartUpload.Save("../picup")
' sample with a physical path
' intCount = mySmartUpload.Save("c:\temp\")
' Display the number of files uploaded
' ************************************
Response.Write(intCount & " file(s) uploaded.")
%>
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
SQL= "SELECT * FROM Produkter WHERE 1=2"
rs.Open SQL,Conn,1,2
rs.AddNew
rs("Produktnamn")=mySmartUpload.Form("rubr")
rs("Paradtext")=mySmartUpload.Form("paradtext")
rs("Paradbild")=mySmartUpload.Form("FILE1")
rs("Beskr")=mySmartUpload.Form("beskr")
rs("Beskr2")=mySmartUpload.Form("beskr2")
rs("Beskr3")=mySmartUpload.Form("beskr3")
rs("Pris")=mySmartUpload.Form("pris")
rs("Hojd")=mySmartUpload.Form("hojd")
rs("Bredd")=mySmartUpload.Form("bredd")
rs("Djup")=mySmartUpload.Form("djup")
rs("Artnr")=mySmartUpload.Form("artnr")
rs("Fotografi")=mySmartUpload.Form("FILE2")
rs("Fotografi1")=mySmartUpload.Form("FILE3")
rs("Fotografi2")=mySmartUpload.Form("FILE4")
rs("Ssfintyg")=mySmartUpload.Form("ssf")
rs("KategID")=mySmartUpload.Form("kategid")
rs("Pdffil")=mySmartUpload.Form("FILE5")
rs.Update
%>
@ndersMedlem sedan juni 200032 969 inlägg nu var det iofs ett tag sedan jag använde mig av aspsmartupload, men jag har för mig att du bör ha en loop som drar igenom file-collection. du lär också ha en variabel som innehåller filnamnet.
jag har för mig att det fanns med en sample application (asp-fil) som gjorde precis detta :q
lycka till,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
aleborgMedlem sedan jan. 20013 341 inlägg Hittade det här på deras site:
FileName
The FileName property contains the name of the file.
Syntax
.FileName
Return Value
Returns a String value.
Example
<%
Response.Write("FileName=" & MyUpLoad.Files.Item(2).FileName)
%>
Så jag försökte med:
rs("Paradbild")=mySmartUpload.Form("FILE1") = " & MyUpLoad.Files.Item(1).FileName"
Men får bara en nolla i db:n
aleborgMedlem sedan jan. 20013 341 inlägg Försökte även med
rs("Paradbild")=mySmartUpload.Form("FILE1") = "file.FileName"
@ndersMedlem sedan juni 200032 969 inlägg humm, det där såg lite knasigt ut.
prova följande:
rs("Paradbild") = MyUpLoad.Files.Item(1).FileName
då råkar inte ha en for-loop för antalet filer som skickas? man kan ju inte vara riktigt säker på vilken fil som kommer med index 1. eller använder du if-satser?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
aleborgMedlem sedan jan. 20013 341 inlägg All "kod" som finns på sidan ser ut så här:
<%
' Variables
' *********
Dim mySmartUpload
Dim intCount
' Object creation
' ***************
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Upload
' ******
mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server
' ****************************************************************************
intCount = mySmartUpload.Save("../picup")
' sample with a physical path
' intCount = mySmartUpload.Save("c:\temp\")
' Display the number of files uploaded
' ************************************
Response.Write(intCount & " file(s) uploaded.")
%>
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
SQL= "SELECT * FROM Produkter WHERE 1=2"
rs.Open SQL,Conn,1,2
rs.AddNew
rs("Produktnamn")=mySmartUpload.Form("rubr")
rs("Paradtext")=mySmartUpload.Form("paradtext")
rs("Paradbild")=mySmartUpload.Form("FILE1") = "file.FileName"
rs("Beskr")=mySmartUpload.Form("beskr")
rs("Beskr2")=mySmartUpload.Form("beskr2")
rs("Beskr3")=mySmartUpload.Form("beskr3")
rs("Pris")=mySmartUpload.Form("pris")
rs("Hojd")=mySmartUpload.Form("hojd")
rs("Bredd")=mySmartUpload.Form("bredd")
rs("Djup")=mySmartUpload.Form("djup")
rs("Artnr")=mySmartUpload.Form("artnr")
rs("Fotografi")=mySmartUpload.Form("FILE2") = "file.FileName"
rs("Fotografi1")=mySmartUpload.Form("FILE3") = "file.FileName"
rs("Fotografi2")=mySmartUpload.Form("FILE4") = "file.FileName"
rs("Ssfintyg")=mySmartUpload.Form("ssf")
rs("KategID")=mySmartUpload.Form("kategid")
rs("Pdffil")=mySmartUpload.Form("FILE5")
rs.Update
%>
aleborgMedlem sedan jan. 20013 341 inlägg Och får fortfarande bara en nolla i db:n!
nån som kan aspSmartUpload?
@ndersMedlem sedan juni 200032 969 inlägg jag förstår inte alls vad du försöker göra med rader som ser ut så här:
rs("Paradbild")=mySmartUpload.Form("FILE1") = "file.FileName"
kan du förklara det för oss?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
aleborgMedlem sedan jan. 20013 341 inlägg I ett av exemplen så använder dom
oRs("FILENAME") = file.FileName
för att lägga till namnet i databasen,
men det är när dom sparar hela filen i db:n!
Satte det inom " " eftersom jag fick fel utan,
det här är bara ett av dom olika
kombinationer jag provat!
aleborgMedlem sedan jan. 20013 341 inlägg Ingen som har ett svar på det här???
SNÄLLA!!! :)
emissionMedlem sedan dec. 19996 721 inlägg Anledningen till att du får 0 med
rs("Fotografi")=mySmartUpload.Form("FILE2") = "file.FileName"
är att det värde som då sparas i rs("Fotografi") är resultatet av den logiska jämförelsen mellan värdet i mySmartUpload.Form("FILE2") och strängen "file.FileName". Eftersom du inte skrivit in orden "file.Filename" i ett formulärfält som heter "FILE2" så blir jämförelsen falsk, och värdet blir 0.
Det blir också fel om du bara skriver file.Filename, för du har inget file-objekt.(Kolla i dokumentationen för aspSmartUpload)
Lösning:
rs("Paradbild")=mySmartUpload.Files(0)
rs("Fotografi")=mySmartUpload.Files(1)
rs("Fotografi1")=mySmartUpload.Files(2)
rs("Fotografi2")=mySmartUpload.Files(3)
aleborgMedlem sedan jan. 20013 341 inlägg Provade, nu fick jag:
Error Type:
aspSmartUpload.Files (0x800404B5)
Invalid Files Name '0' (Error 1205)
Provade även lägga in For satsen som används i exempel 4, men deras dokumentation är inte den bästa, dom förutsätter att man är proffs, vilket alla inte är!
emissionMedlem sedan dec. 19996 721 inlägg Ahh...Item-numreringen börjar på 1. Ska alltså vara från 1 till 4, inte 0 till 3
aleborgMedlem sedan jan. 20013 341 inlägg Error Type:
Provider (0x80020003)
Det gick inte att hitta medlemmen.
/unisafe/admin/nyprodsucc.asp, line 197
Line 197:
rs("Paradbild")=mySmartUpload.Files(1)
Hur ska det se ut med "For" satser mm?
aleborgMedlem sedan jan. 20013 341 inlägg Enligt dokumentationen ska man använda .FileName för att få fram filnamnet, gäller det bara när man ska få det utskrivet?
emissionMedlem sedan dec. 19996 721 inlägg FOr-satser ska du inte blanda in, för du ska inte loopa in något.
Däremot glömde jag ju filename.... Ska nog gå och lägga mig....
rs("Paradbild")=mySmartUpload.Files(1).filename
rs("Fotografi")=mySmartUpload.Files(2).filename
rs("Fotografi1")=mySmartUpload.Files(3).filename
rs("Fotografi2")=mySmartUpload.Files(4).filename
Men det kräver att man laddar upp alla 4 bilderna.
Annars kan du döpa formulärfälten till samma som databasfälten och..
For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
[Redigerat av emission den 22 feb 2001]
aleborgMedlem sedan jan. 20013 341 inlägg Hur gör jag när jag vill ladda upp en ny bild och ersätta namnet i databasen?
Försökt med olika varianter som jag vet funkar "normalt", provat alla möjliga kombinationer
<%
' Variables
' *********
Dim mySmartUpload
Dim intCount
' Object creation
' ***************
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Upload
' ******
mySmartUpload.Upload
' Save the files with their original names in a virtual path of the web server
' ****************************************************************************
intCount = mySmartUpload.Save("../picup")
' sample with a physical path
' intCount = mySmartUpload.Save("c:\temp\")
' Display the number of files uploaded
' ************************************
Response.Write(intCount & " file(s) uploaded.")
%>
<%
dim Conn
set rs= Server.CreateObject("ADODB.Recordset")
conn.Execute= "Update * FROM Produkter Where ID ="& Request.QueryString("ID") &""
For each file In mySmartUpload.Files
rs(file.name)=file.filename
next
rs("Paradbild")=mySmartUpload.Files(1).Filename
rs("Fotografi")=mySmartUpload.Files(2).Filename
rs("Fotografi1")=mySmartUpload.Files(3).Filename
rs("Fotografi2")=mySmartUpload.Files(4).Filename
rs("Pdffil")=mySmartUpload.Files(5).Filename
%>
?