Avatar billede lmunch Nybegynder
30. oktober 2001 - 22:09 Der er 4 kommentarer og
1 løsning

Kan ikke gemme formfelter uden billed med Asp SmartUpload.....

Jeg har 3 formfelter der skal uploades + et input-type filefelt til upload af et billed til en artikel. Navnet på billedet er det eneste der bliver gemt i DB på de andre 3 alm. formfelter. Asp smartUpload uploader billedet til en mappe samtidig. Der virker OK.

Når der ikke skal uploades et billede til DB, gemmes der overhovedet intet i DB... En eller anden please help her. Har kigget på det, men lige lidt hjælper det.

Her er scriptet der gemmer til DB (gemNews.asp):
------------------------------------------------<% @Language=\"VBScript\" %>
<% Option Explicit %>
<!-- #include file=\"Adovbs.inc\" -->
<HTML> <body bgcolor=\"#cccccc\" topmargin=\"0\" leftmargin=\"0\" >
<table BGCOLOR=\"#cccccc\" MARGINHEIGHT=\"0\" MARGINWIDTH=\"0\" TOPMARGIN=\"0\" LEFTMARGIN=\"0\" leftmargin=\"0\" Cellpadding=\"0\" Cellspacing=\"0\" Border=\"0\" Width=\"780\" HEIGHT=\"100% valign=\"center\" align=center>
    <TD BGCOLOR=\"#cccccc\" WIDTH=780 align=\"center\" valign=\"center\">
<table BGCOLOR=\"#cccccc\" width=\"780\" border=\"0\"><FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"4\" COLOR=\"#CC0000\"><hr>Der forekom en fejl !<hr><br>
<%

On Error Resume Next
   
\' Variabler til upload af filer
    Dim mySmartUpload
    Dim intCount
    Dim item
    Dim value
    Dim file
   
\' Variabler til databaseoperationer
    Dim cn
    Dim strSQL
    Dim rs
   
\' Variabler til postsættene
    Dim bytKarak
    Dim strHeadline
    Dim strDato
    Dim strNews1
    Dim strFil
    Dim i
   
\' Her erklæres/instantieres aspSmartUpload objektet
    Set mySmartUpload = Server.CreateObject(\"aspSmartUpload.SmartUpload\")


\'********** Nedenstående fil-extensions accepteres: *************************************
mySmartUpload.AllowedFilesList = \"jpg,gif,jpeg\"

\' Allow all files except exe,txt,bat and asp   
\' ***************************************   
mySmartUpload.DeniedFilesList = \"exe,bat,asp,txt\"

\'  Only allow files smaller than 50000 bytes
\'  *****************************************   
mySmartUpload.MaxFileSize = 50000
 
    mySmartUpload.Upload

\' Her fanges dataene fra formularen på siden default.asp
\' Læg mærke til, at man ikke kan benytte Request.Form, men skal benytte mySmartUpload.Form
    \'bytKarak = mySmartUpload.Form(\"karakter\")
    strHeadline = mySmartUpload.Form(\"Headline\")
    strDato = mySmartUpload.Form(\"Dato\")
    strNews1 = mySmartUpload.Form(\"News1\")


\'Upload af filer
\'Rettighederne på mappen for IUSR skal være RW
    intCount = mySmartUpload.Save(\"images\")

\'Derefter gemmes alt i databasen NEWS
    Set cn = Server.CreateObject(\"ADODB.Connection\")
    cn.Open \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & Server.MapPath(\"data/NEWS.mdb\")

    For i = 1 To mySmartUpload.Files.Count
        If mySmartUpload.Files.Item(i).FileName = \"\" Then
        Else
            strFil = mySmartUpload.Files.Item(i).FileName
            strSQL = \"INSERT INTO News (Headline, Dato, News1, Billed) \"
            strSQL = strSQL & \"VALUES(\'\" & strHeadline & \"\',\'\" & strDato & \"\',\'\" & strNews1
            strSQL = strSQL & \"\',\'\" & strFil & \"\');\"
            cn.Execute strSQL


        End If
    Next
   
\'  Trap errors
\'  ***********   
If Err Then     

    Response.Write(\"<TR><TD><FONT FACE=\'Arial, helvetica\' SIZE=2 COLOR=\'#000000\'><b>Fejl Nr. \" &Err.Number &\":</b> \" &Err.Description & \"<BR><BR></TD></TR>\")
    Response.Write(\"<TR><TD><FONT FACE=\'Arial, helvetica\' SIZE=2 COLOR=\'#000000\'><b><hr>De har sikkert forsøgt at uploade en filtype, der ikke accepteres!<hr></b></TD></TR>\")
    Response.Write(\"<TR><TD><FONT FACE=\'Arial, helvetica\' SIZE=2 COLOR=\'#000000\'><BR>Kun billedfiler af typerne \'billede.gif\', \'billede.jpg\' eller \'billede.jpeg\' accepteres.<BR><BR></TD></TR>\")
    Response.Write(\"<TR><TD><FONT FACE=\'Arial, helvetica\' SIZE=2 COLOR=\'#000000\'><b><hr>Husk billedet kun må fylde max. 50 Kb!<hr><BR><BR><input type=\'button\'  value=\'<< Prøv igen\' onClick=\'history.go(-1)\'></b></TD></TR>\")

Else   
\'  Display the number of files uploaded   
\'  ************************************     
Response.Redirect(\"next.htm\") 

End If   
%>

</table>
</form>
    </td>
  </tr>
</TABLE>

</body>
</html>

Avatar billede j.robert Nybegynder
30. oktober 2001 - 22:50 #1
Har du i databasen, sat feltet til:
Tillad Nullængde: Ja
Obligatorisk: Nej
Avatar billede lmunch Nybegynder
30. oktober 2001 - 22:59 #2
Jep.... :)
Avatar billede j.robert Nybegynder
30. oktober 2001 - 23:18 #3
Dette er kun et forslag, da jeg ikke er så hård i ASP, men jeg mener du i din If Then Else sætning mangler at specificere \"Then\".

    For i = 1 To mySmartUpload.Files.Count
        If mySmartUpload.Files.Item(i).FileName = \"\" Then
            strSQL = \"INSERT INTO News (Headline, Dato, News1) \"
            strSQL = strSQL & \"VALUES(\'\" & strHeadline & \"\',\'\" & strDato & \"\',\'\" & strNews1
            strSQL = strSQL & \"\');\"
            cn.Execute strSQL

        Else
            strFil = mySmartUpload.Files.Item(i).FileName
            strSQL = \"INSERT INTO News (Headline, Dato, News1, Billed) \"
            strSQL = strSQL & \"VALUES(\'\" & strHeadline & \"\',\'\" & strDato & \"\',\'\" & strNews1
            strSQL = strSQL & \"\',\'\" & strFil & \"\');\"
            cn.Execute strSQL

        End If
Avatar billede lmunch Nybegynder
03. november 2001 - 17:48 #4
Lukker spørgsmålet da jeg ingen løsning har fået....
Avatar billede j.robert Nybegynder
03. november 2001 - 21:43 #5
øøøh, det kunne være rart at få en tilbagemelding inden spørgsmål blev lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester