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,
48 svar · 682 visningar · startad av aleborg
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?
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,
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
%>
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
lycka till,
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
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?
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
%>
Och får fortfarande bara en nolla i db:n!
nån som kan aspSmartUpload?
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?
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!
Ingen som har ett svar på det här???
SNÄLLA!!!
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)
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!
Ahh...Item-numreringen börjar på 1. Ska alltså vara från 1 till 4, inte 0 till 3
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?
Enligt dokumentationen ska man använda .FileName för att få fram filnamnet, gäller det bara när man ska få det utskrivet?
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]
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
%>
?