21. juli 2004 - 00:17
Der er
15 kommentarer og 1 løsning
upload fil med aspSmartUpload + gem data i database
hejsa... nogen der ved hvordan man gemmer data fra den Form man bruger til aspSmartUpload i database ?? jeg har indtil videre prøvet dette: <% Set Downloads = conn.execute("Select * from Downloads order by Type") Set MyID = conn.execute("Select * from Profiles where Username ='" & Session("MM_Username") & "'") If Request.Form("Submit") <> "" then Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") mySmartUpload.AllowedFilesList = "zip,rar" mySmartUpload.DeniedFilesList = "asp,htm,html" strSQL = "Insert into Downloads " strSQL = strSQL & "([Type],[Uploader],[FileName],[Description])" strSQL = strSQL & " Values ('" & Request.Form("Select") & "'," strSQL = strSQL & Request.Form("ID") & "," FileName = Split(Request.Form("File"),"\") strSQL = strSQL & Request.Form("Uploader") & ",'" & FileName(Ubound(FileName)) & "'," strSQL = strSQL & "'" & Request.Form("Text") & "')" Conn.Execute(strSQL) mySmartUpload.Upload intCount = mySmartUpload.Save("Downloads") If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else Response.Redirect("Downloads.asp") End if End if %> <form action="Downloads.asp" method="post" enctype="multipart/form-data" name="Form"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="150" align="center" valign="top"><strong>The File : </strong></td> <td width="450"><input name="File" type="file" size="50"></td> </tr> <tr> <td align="center" valign="top"><strong>Select Type : </strong></td> <td><select name="Select"> <option value="1">Add-on Files</option> <option value="2">Custom Vinyls</option> <option value="3">Game-Programs</option> <option value="4">Save-Games</option> <option value="5">Updates</option> </select> <input type="hidden" name="Uploader" value="<%=MyID("ID")%>"></td> </tr> <tr> <td align="center" valign="top"><strong>Description : </strong></td> <td><textarea name="Text" cols="60" rows="4"></textarea></td> </tr> <tr> <td align="center"> </td> <td> </td> </tr> <tr> <td> </td> <td align="right"><input type="submit" value="Upload the File"></td> </tr> </table> </form>
Annonceindlæg fra Kommando
Når man bruger en upload komponent kan man ikke bruge request.form: Request.Form("ID") Men man skal skrive navnet på upload koponenten .form: mySmartUpload.Form("ID")
det forklare jo lidt... jeg søgte på w3schools... men der står ikke meget om enctype="multipart/form-data" metoden... prøver det lige af...
dertil vil jeg gerne spørge om har gjort det rigtige med hensyn til at skaffe fil-navnet på den fil som skal uploades ?? FileName = Split(Request.Form("File"),"\") Fil_navn = FileName(Ubound(FileName))
Ja, umiddelbart ville jeg lave koden sådan her, også for at undgå en forkert post i databasen: If Request.Form("Submit") <> "" then Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") mySmartUpload.AllowedFilesList = "zip,rar" mySmartUpload.DeniedFilesList = "asp,htm,html" mySmartUpload.Upload intCount = mySmartUpload.Save("Downloads") filnavn = mySmartUpload.Files.Item(1).FileName If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else strSQL = "Insert into Downloads " strSQL = strSQL & "([Type],[Uploader],[FileName],[Description])" strSQL = strSQL & " Values ('" & mySmartUpload.Form("Select") & "'," strSQL = strSQL & mySmartUpload.Form("ID") & "," strSQL = strSQL & mySmartUpload.Form("Uploader") & ",'" & filnavn & "'," strSQL = strSQL & "'" & mySmartUpload.Form("Text") & "')" Conn.Execute(strSQL) Response.Redirect("Downloads.asp") End if End if
Hvorfor virker dette ikke '??? :-( <% If Request.Form("Submit") <> "" then On Error Resume Next Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") mySmartUpload.AllowedFilesList = "zip,rar" mySmartUpload.DeniedFilesList = "asp,htm,html" strSQL = "Insert into Downloads " strSQL = strSQL & "([Type],[Uploader],[FileName],[Description])" strSQL = strSQL & " Values ('" & mySmartUpload.Form("Select") & "'," strSQL = strSQL & mySmartUpload.Form("ID") & "," FileName = Split(mySmartUpload.Form("FILE1"),"\") strSQL = strSQL & mySmartUpload.Form("Uploader") & ",'" & FileName(Ubound(FileName)) & "'," strSQL = strSQL & "'" & mySmartUpload.Form("Text") & "')" Conn.Execute(strSQL) mySmartUpload.Upload intCount = mySmartUpload.Save("Downloads") If Err Then Response.Write("<b>Wrong selection : </b>" & Err.description) Else Response.Redirect("Downloads.asp") End if End if %> <form method="post" action="Downloads.asp" enctype="multipart/form-data"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="150" align="center" valign="top"><strong>The File : </strong></td> <td width="450"><input type="FILE" name="FILE1" size="50"></td> </tr> <tr> <td align="center" valign="top"><strong>Select Type : </strong></td> <td><select name="Select"> <option value="1">Add-on Files</option> <option value="2">Custom Vinyls</option> <option value="3">Game-Programs</option> <option value="4">Save-Games</option> <option value="5">Updates</option> </select> <input type="hidden" name="Uploader" value="<%=MyID("ID")%>"></td> </tr> <tr> <td align="center" valign="top"><strong>Description : </strong></td> <td><textarea name="Text" cols="60" rows="4"></textarea></td> </tr> <tr> <td align="center"> </td> <td> </td> </tr> <tr> <td> </td> <td align="right"><input type="submit" value="Upload the File"></td> </tr> </table> </form>
Fordi man skal kalde funktioen: mySmartUpload.Upload Før man kan bruge mySmartUpload.Form("xxx")
men nu har jeg indsat det som du postede... men der kommer stadig ikke nogen nye posts i databasen - ej heller bliver der uploadet noget...
Når man tester kan det være en god ide at udkommentere linjen med On Error Resume Next, så man kan se hvilken fejl den melder: ' On Error Resume Next
26. juli 2004 - 14:00
#10
yup.. har prøvet men der kommer ingen fejl...
26. juli 2004 - 14:02
#11
Så prøv at tjekke du overhoved kommer ind i if sætningen: If Request.Form("Submit") <> "" then du kan evt. prøve at lave den om til: If Request.Servervariables("REQUEST_METHOD")="POST" then
26. juli 2004 - 14:06
#12
sad lige og tænke det samme... idet jeg i response.redirect have testet med at skrive Response.Redirect("Downloads.asp?asdf") hvilket først kunne ses på adressen da jeg indsatte det du lige kom med... Den uploader nu... men der sker ikke noget med databasen....
26. juli 2004 - 14:10
#13
Det lyder underligt, har ud udkommenteret det med On error resmune next? Hvis ikke kommer der måske en database fejl, hvis du har udkommenteret forstår jeg ikke hvorfor den ikke gemmer.
26. juli 2004 - 14:23
#14
må være en fejl jeg har lavet, endten i databasen eller måden jeg poster Tal i Tal-felter ? har lige prøvet at lave Tal-Felter om til text og poste Tal som ('text')
26. juli 2004 - 14:34
#15
ahh - fik det til at virke... nogle fejl med hensyn til hidden's felt-navn og hvad jeg prøvede at hente... al funker nu.. skal du ha nogle point eaglyEye ?
26. juli 2004 - 15:26
#16
Ok :) Så der et svar fra mig
Kurser inden for grundlæggende programmering