Avatar billede justdoit Nybegynder
11. august 2002 - 16:58 Der er 28 kommentarer og
2 løsninger

opload billede ??

Jeg har hentet dette script:

http://activedeveloper.dk/aspdigital/kapitel6/upload.asp

Jeg har en side hvor jeg kan skrive en overskrift, en tekst og hvor jeg kan vælge <input type="file" name="billede" size="30">

Men hvordan får jeg scriptet til at lægge det uploadet billede ned i min mappe der hedder billeder/nyheder??
Avatar billede justdoit Nybegynder
11. august 2002 - 17:23 #1
Eller er det nogle der har et script liggende der uploader billeder til en bestemt mappe, så vil jeg også meget gerne se koderne til det??
Avatar billede jacob_m Nybegynder
11. august 2002 - 17:24 #2
Jeg har et i PHP..
Avatar billede justdoit Nybegynder
11. august 2002 - 17:31 #3
Øvv jeg skal bruge det i asp... Kan du ikke klare det :-)
Avatar billede jacob_m Nybegynder
11. august 2002 - 17:32 #4
Desværre.. ASP er ikke lige mig... Men du kan da få PHP strengen til lidt ispiration:

f (isset($userfile)) {
    if (eregi("(\.zip|\.exe)$", $userfile_name, $endelse)) {
        if (copy($userfile,"D:/web/greyz.dk_b9e2ck/wwwroot/script/downloads/".$userfile_name)) {
            print "Scriptet er uploaded.";
Avatar billede oasen Nybegynder
11. august 2002 - 17:58 #5
Med ASPsmartupload:

************************************************

    On Error Resume Next

    Dim mySmartUpload
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

    mySmartUpload.MaxFileSize = 100000
    mySmartUpload.DeniedFilesList = "exe,bat,asp"

    mySmartUpload.Upload
    strFileName = mySmartUpload.Files.Item(1).FileName

    strBesked = mySmartUpload.form("besked")

    mySmartUpload.Files.Item(1).SaveAs "/din_sti/" & strFileName

    If Len(Trim(strFileName)) <> 0 And Err Then
        Response.Write "Max. 100Kb og ingen .bat/.asp/.exe-filer!"
    End If
Avatar billede oasen Nybegynder
11. august 2002 - 18:02 #7
Og din formular:

*********************************************

Response.Write "<form method='POST' enctype='multipart/form-data' action='dinside.asp' name='form'>"
Response.Write "<textarea rows='6' name='besked'>" & strBesked & "</textarea>"
Response.Write "<input type='file' name='file'>"
Response.Write "<input type='submit' name='submit' value='Upload'></form>"
Avatar billede justdoit Nybegynder
11. august 2002 - 18:21 #8
Ok, jeg har prøvet lidt men er ikke helt med:

Her er koden til siden hvor jeg skriver nyhederne:

<Form name="bruger" method="post" onsubmit="return valider()" action="opretnyhed.asp" style="margin:0px;" enctype="multipart/form-data">
                    <table width="560" border="0" cellspacing="10" cellpadding="0">
                      <tr>
                        <td valign="top" colspan="3">
                          <p>Her kan du oprette nyheder til Team Aarhus Badminton,
                            hvor du skal udfylde felterne nedenfor. N&aring;r
                            du har udfyldt felterne klikker du på opret, og nyheden
                            vil være opdateret. </p>
                        </td>
                      </tr>
                      <tr>
                        <td width="77">Overskrift:</td>
                        <td width="493" colspan="2">
                          <Input type="text" name="overskrift" class="nyhederOverskrift">
                        </td>
                      </tr>
                      <tr>
                        <td valign="top">Indhold:</td>
                        <td colspan="2">
                          <textarea name="tekst" class="nyheder_tekst"></textarea>
                        </td>
                      <tr>
                        <td>Billede:</td>
                        <td colspan="2">
                          <input type="file" name="billede" size="30">
                        </td>
                      </tr>
                      <tr>
                        <td></td>
                        <td width="150"></td>
                        <td><input type="image" src="billeder/Sidemenu/opret.gif" width="45" height="14" border="0" value="send" name="image2">
                          <a onFocus="this.blur()" href="java script:document.bruger.reset()"><img src="billeder/Sidemenu/slet.gif" border=0 alt="Reset" width="45" height="14"></a></td>
                      </tr>
                    </table>
                  </Form>


Og her ligger jeg det i databasen:

<%
strOverskrift = replace(request("overskrift"),"'","''")
strTekst = replace(request("tekst"),"'","''")
strDato = Now
strBruger = session("brugernavn")

set cn = server.createobject("adodb.connection")
cn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&server.MapPath("../tab2/db/database.mdb")

cn.execute("INSERT INTO nyheder (overskrift, tekst, dato, bruger) VALUES ('"&strOverskrift&"','"&strTekst&"','"&strDato&"','"&strBruger&"')")

cn.close
set rs = nothing
set cn = nothing

Response.Redirect("nyheder.asp")

%>


Hvordan sætter jeg det ind, sådan at billedets navn bliver lagt i databasen, samtidig med at overskrift og tekst også bliver lagt i db'en??
Flere point?
Avatar billede thesurfer Nybegynder
11. august 2002 - 18:29 #9
hvad med strFilename = request.form("file") (hvis feltet med filnavnet/billedet hedder "file") og så tilføje strFilename til sql strengen ?

/theSurfer.
Avatar billede oasen Nybegynder
11. august 2002 - 18:31 #10
Øjeblik...
Avatar billede oasen Nybegynder
11. august 2002 - 18:36 #11
Prøv dette:

********************************************************

<Form name="bruger" method="post" onsubmit="return valider()" action="opretnyhed.asp" style="margin:0px;" enctype="multipart/form-data">
                    <table width="560" border="0" cellspacing="10" cellpadding="0">
                      <tr>
                        <td valign="top" colspan="3">
                          <p>Her kan du oprette nyheder til Team Aarhus Badminton,
                            hvor du skal udfylde felterne nedenfor. N&aring;r
                            du har udfyldt felterne klikker du på opret, og nyheden
                            vil være opdateret. </p>
                        </td>
                      </tr>
                      <tr>
                        <td width="77">Overskrift:</td>
                        <td width="493" colspan="2">
                          <Input type="text" name="overskrift" class="nyhederOverskrift">
                        </td>
                      </tr>
                      <tr>
                        <td valign="top">Indhold:</td>
                        <td colspan="2">
                          <textarea name="tekst" class="nyheder_tekst"></textarea>
                        </td>
                      <tr>
                        <td>Billede:</td>
                        <td colspan="2">
                          <input type="file" name="billede" size="30">
                        </td>
                      </tr>
                      <tr>
                        <td></td>
                        <td width="150"></td>
                        <td><input type="image" src="billeder/Sidemenu/opret.gif" width="45" height="14" border="0" value="send" name="image2">
                          <a onFocus="this.blur()" href="java script:document.bruger.reset()"><img src="billeder/Sidemenu/slet.gif" border=0 alt="Reset" width="45" height="14"></a></td>
                      </tr>
                    </table>
                  </Form>


Og her ligger jeg det i databasen:

<%
strOverskrift = replace(mySmartUpload.form("overskrift"),"'","''")
strTekst = replace(mySmartUpload.form("tekst"),"'","''")
strDato = Now
strBruger = session("brugernavn")

set cn = server.createobject("adodb.connection")
cn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&server.MapPath("../tab2/db/database.mdb")


On Error Resume Next

    Dim mySmartUpload
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

    mySmartUpload.MaxFileSize = 100000
    mySmartUpload.DeniedFilesList = "exe,bat,asp"

    mySmartUpload.Upload
    strFileName = mySmartUpload.Files.Item(1).FileName

    mySmartUpload.Files.Item(1).SaveAs "/din_sti/" & strFileName

    If Len(Trim(strFileName)) <> 0 And Err Then
        Response.Write "Max. 100Kb og ingen .bat/.asp/.exe-filer!"
    Else
    Response.Write "Billedet og teksten er nu gemt!"
    End If


cn.execute("INSERT INTO nyheder (overskrift, tekst, dato, bruger, filnavn) VALUES ('"&strOverskrift&"','"&strTekst&"','"&strDato&"','"&strBruger&"','"&strFileName&"')")


If Len(Trim(strFileName)) <> 0 And Not Err Then
  Response.Redirect("nyheder.asp")
End If

cn.close
set rs = nothing
set cn = nothing
Set mySmartUpload = nothing
%>
Avatar billede oasen Nybegynder
11. august 2002 - 18:41 #12
thesurfer ---> Der kan ikke hentes værdier fra formularen på normal vis, når "enctype" er sat til "multipart/form-data". Så skal de hentes som vist ovenfor ;)
Avatar billede justdoit Nybegynder
11. august 2002 - 18:42 #13
Jeg får en fejl i linie 2 der siger: Et objekt er obligatorisk: ''

Altså her: strOverskrift = replace(mySmartUpload.form("overskrift"),"'","''") ???
Avatar billede thesurfer Nybegynder
11. august 2002 - 18:46 #14
SKAL man bruge enctype="multipart/form-data" ?
Avatar billede justdoit Nybegynder
11. august 2002 - 19:07 #15
oasen: ved du hvad fejlen er??

Jeg får en fejl i linie 2 der siger: Et objekt er obligatorisk: ''
Avatar billede thesurfer Nybegynder
11. august 2002 - 19:09 #16
hvad står der i linie 1, 2 og 3 ?
Avatar billede justdoit Nybegynder
11. august 2002 - 19:14 #17
Dette er de første par linjer:

%
strOverskrift = replace(mySmartUpload.form("overskrift"),"'","''")
strTekst = replace(mySmartUpload.form("tekst"),"'","''")
strDato = Now
strBruger = session("brugernavn")
Avatar billede thesurfer Nybegynder
11. august 2002 - 19:36 #18
mySmartUpload er da et objekt.. det eneste objekt..

har du defineret/dim'et "strX.." ?
Avatar billede oasen Nybegynder
11. august 2002 - 21:59 #19
thesurfer---> Ja, ved filupload skal du.

justdoit---> Ja, jeg ved godt hvad fejlen er - komponenten ASPsmartupload er ikke installeret på din server.
Start med at finde ud af hvilke komponenter, du har adgang til.
F.eks. ASPSmartUpload, ASPSimpleUpload, Persits Upload.
Det kan også laves uden en komponent, men det vil være lidt langsommere og mere omfattende.

Upload denne fil til din server, så kan vi se, hvad du har adgang til:


********************************************************

<%
START = "<TR><TD><FONT FACE=""Tahoma"" SIZE=""2"">"
MELLEM = "</FONT></TD><TD WIDTH=""200""><FONT FACE=""Tahoma"" SIZE=""2"">"
SLUT = "</FONT></TD></TR>"

Komponentdata = Array("","MSWC.AdRotator","MSWC.BrowserType","ADODB.Connection","MSWC.NextLink","Scripting.FileSystemObject","CDONTS.Session","MSWC.Status","MSWC.PageCounter","MSWC.PermissionChecker","","SoftArtisans.FileUp","SoftArtisans.FileManager","SoftArtisans.FileManagerTX","SoftArtisans.ExcelWriter","SMUM.XCheck.1","SoftArtisans.SASessionPro.1","SAXFileLib.XFRequest","","JMail.SMTPMail","JMail.Speedmailer","JMail.POP3","JMail.Message","w3sitetree.tree","w3.upload","w3.netutils","Socket.TCP","","SMTPsvg.Mailer","AspImage.Image","AspSock.Conn","POP3svg.Mailer","AspNNTP.Conn","AspFile.FileObj","AspConv.Expert","AspHTTP.Conn","AspDNS.Lookup","AspMX.Lookup","","ImgSize.Check","AspPing.Conn","AspCrypt.Crypt","ASPExec.Execute","AspInet.FTP","ASPsvg.Process","","AspSmartForumAdm.SmartForumAdm","aspSmartFile.SmartFile","AspSmartSecurity.FileSec","AspSmartDate.SmartDate","AspSmartUpload.SmartUpload","aspSmartMail.SmartMail","aspSmartCache.SmartCache","","ASPChat2.Chat","ASPThumbnailer.Thumbnail","ASPSimpleUpload.Upload","WhoIs2.WhoIs","","cyScape.browserObj","","EZsite.Calendar","","Dynu.CreditCard","Dynu.DateTime","Dynu.DNS","Dynu.Exec","Dynu.Email","Dynu.Encrypt","Dynu.FileUtil","Dynu.FTP","Dynu.HTTP","Dynu.Email","Dynu.POP3","Dynu.Ping","Dynu.Socket","Dynu.StringUtil","Dynu.Wait","Dynu.Whois")
komponentnavn = Array("Microsoft","Ad Rotator","Browser Capabilities","Database Access","Content Linking","File Access","CDO for NTS","Status","Page Counter","Permission Checker","SoftArtisans http://www.softartisans.com","SA-FileUp","SA-FileManager","SA-FilemanagerTX","SA-ExcelWriter","SA-Check","SA-SessionPro","SA-XFile","Dimac http://www.dimac.net","JMail 3.7","JMail 4.1","JMail 4.1","JMail 4.1","Sitetree","Upload","Utils","Socket","ServerObjects http://www.serverobjects.com","ASPMail","ASPImage","ASPSock","ASPPop3","AspNNTP","AspFile (AspLib)","AspConv (AspLib)","AspHTTP","AspDNS","AspMX","ServerObjects (Freeware Komponenter) http://www.serverobjects.com","ImageSize","AspPing","AspCrypt","ASPExec","AspInet","ASPProc","aspSmart http://www.aspsmart.com","aspSmartForum","aspSmartFile","aspSmartSecurity","aspSmartDate","aspSmartUpload","aspSmartMail","aspSmartCache","ASPhelp http://www.asphelp.com","ASP Chat Professional","ASP Thumbnailer","ASP Simple Upload","ASP Whois","cyScape http://www.cyscape.com","BrowserHawk","Doug Dean Software http://www.dougdean.com","EZSite Calender","Dynu Systems http://www.dynu.com","DynuCreditCard","DynuDateTime","DynuDNS","DynuExec","DynuEmail","DynuEncrypt","DynuFileUtil","DynuFTP","DynuHTTP","DynuEmail","DynuPOP3","DynuPing","DynuSocket","DynuStringUtil","DynuWait","DynuWhois")

Function TestCom(data)
    On Error Resume Next
    Set komponent = Server.CreateObject(data)
        If Err.Number = 0 Then
            TestCom = "<FONT COLOR=""009900"">OK - " & TypeName(komponent) & "</FONT>"
        Else
            TestCom = "<FONT COLOR=""CC0000"">FEJL - " & Err.number & "</FONT>"
        End If
    Set komponent = Nothing
End Function

Function komponenter()
    komponenter = komponenter & "<TABLE BORDER=""1"" BORDERCOLOR=""999999"" WIDTH=""700"" CELLSPACING=""0"">"
    komponenter = komponenter & START & "<B>Komponent</B>" & MELLEM & "<B>Status</B>" & SLUT
    For i = 0 to Ubound(komponentdata)
        If komponentdata(i) = "" Then
            komponenter = komponenter & START & "<B>" & komponentnavn(i) & "</B>" & MELLEM & "<B>&nbsp;</B>" & SLUT
        Else
            komponenter = komponenter & START & komponentnavn(i) & " (" & komponentdata(i) & ")" & MELLEM & TestCom(komponentdata(i)) & SLUT
        End if
    Next
    komponenter = komponenter & "</TABLE>"
End Function


Response.buffer = True
Response.Expires = -1
Response.AddHeader "PRAGMA", "NO-CACHE"
%>

<HTML>
<HEAD>
<TITLE>ASPADMIN</TITLE>
</HEAD>
<BODY>
<TABLE BORDER="0" WIDTH="100%">
<TR>
    <TD CLASS="menu"><A HREF="http://www.aspadmin.dk" CLASS="menu">ASPADMIN</A> - KOMPONENTER</TD>
</TR>
<TR>
    <TD CLASS="indhold">
        <% =komponenter() %>
    </TD>
</TR>
<TR>
    <TD CLASS="menu"><A HREF="http://www.aspadmin.dk" CLASS="menu">ASPADMIN</A> - <A HREF="http://www.cnhweb.dk" CLASS="menu">CNH WEB</A></TD>
</TR>
</TABLE>

</body>
</html>
Avatar billede oasen Nybegynder
11. august 2002 - 22:03 #20
Uuups... der er da også noget galt med det script jeg gav dig. Du får den lige igen her. Se så om den stadig melder fejl nogle steder.

**************************************************************

<Form name="bruger" method="post" onsubmit="return valider()" action="opretnyhed.asp" style="margin:0px;" enctype="multipart/form-data">
                    <table width="560" border="0" cellspacing="10" cellpadding="0">
                      <tr>
                        <td valign="top" colspan="3">
                          <p>Her kan du oprette nyheder til Team Aarhus Badminton,
                            hvor du skal udfylde felterne nedenfor. N&aring;r
                            du har udfyldt felterne klikker du på opret, og nyheden
                            vil være opdateret. </p>
                        </td>
                      </tr>
                      <tr>
                        <td width="77">Overskrift:</td>
                        <td width="493" colspan="2">
                          <Input type="text" name="overskrift" class="nyhederOverskrift">
                        </td>
                      </tr>
                      <tr>
                        <td valign="top">Indhold:</td>
                        <td colspan="2">
                          <textarea name="tekst" class="nyheder_tekst"></textarea>
                        </td>
                      <tr>
                        <td>Billede:</td>
                        <td colspan="2">
                          <input type="file" name="billede" size="30">
                        </td>
                      </tr>
                      <tr>
                        <td></td>
                        <td width="150"></td>
                        <td><input type="image" src="billeder/Sidemenu/opret.gif" width="45" height="14" border="0" value="send" name="image2">
                          <a onFocus="this.blur()" href="java script:document.bruger.reset()"><img src="billeder/Sidemenu/slet.gif" border=0 alt="Reset" width="45" height="14"></a></td>
                      </tr>
                    </table>
                  </Form>



<%

On Error Resume Next

    Dim mySmartUpload
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

    mySmartUpload.MaxFileSize = 100000
    mySmartUpload.DeniedFilesList = "exe,bat,asp"

strOverskrift = replace(mySmartUpload.form("overskrift"),"'","''")
strTekst = replace(mySmartUpload.form("tekst"),"'","''")
strDato = Now
strBruger = session("brugernavn")

set cn = server.createobject("adodb.connection")
cn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&server.MapPath("../tab2/db/database.mdb")

    mySmartUpload.Upload
    strFileName = mySmartUpload.Files.Item(1).FileName

    mySmartUpload.Files.Item(1).SaveAs "/din_sti/" & strFileName

    If Len(Trim(strFileName)) <> 0 And Err Then
        Response.Write "Max. 100Kb og ingen .bat/.asp/.exe-filer!"
    Else
    Response.Write "Billedet og teksten er nu gemt!"
    End If


cn.execute("INSERT INTO nyheder (overskrift, tekst, dato, bruger, filnavn) VALUES ('"&strOverskrift&"','"&strTekst&"','"&strDato&"','"&strBruger&"','"&strFileName&"')")


If Len(Trim(strFileName)) <> 0 And Not Err Then
  Response.Redirect("nyheder.asp")
End If

cn.close
set rs = nothing
set cn = nothing
Set mySmartUpload = nothing
%>
Avatar billede justdoit Nybegynder
11. august 2002 - 23:56 #21
Jeg har prøvet hele aftnen, og det vil bare ikke virke. Jeg har også prævet dine forslag, men der bliver ikke skrevet noget til db, og billedet bliver ikke uploadet.

Derfor er jeg begyndt at kigge på et andet script, hvor jeg kan få skrevet det hele til db og billedet bliver uploadet, men jeg kan ikke få overskriften og teksten ind??????

Her er scriptet:

<!-- #INCLUDE virtual="/fileupload.inc" -->

<%
Dim intFileUpload, strContentType, strFilename, intFileTotalBytes, strOverskrift, strTekst

strOverskrift = Request.ServerVariables("overskrift")
strTekst = Request.ServerVariables("tekst")

strFilename = billede
strDato = Now
strBruger = session("brugernavn")

intFileUpload = FileUpload("billeder/nyheder/", 20000, Array("image/gif", "image/jpeg", "image/pjpeg"), Array("gif", "jpg"), strContentType, strFilename, intFileTotalBytes)

If intFileUpload = 0 Then
       
set cn = server.createobject("adodb.connection")
cn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&server.MapPath("../tab2/db/database.mdb")

cn.execute("INSERT INTO nyheder (billede, dato, bruger, overskrift, tekst) VALUES ('"&strFilename&"','"&strDato&"','"&strBruger&"','"&strOverskrift&"','"&strTekst&"')")

cn.close
set rs = nothing
set cn = nothing

  Response.Redirect("nyheder.asp")

        Else 
            Response.Write "Der opstod en fejl under upload!<BR>"
            Response.Write "Fejl nr: " & intFileUpload & "<BR>"
            Response.Write "Filnavn: " & strFilename & "<BR>"
            Response.Write "Filtype: " & strContentType & "<BR>"
            Response.Write "Filstørrelse: " & intFileTotalBytes & "<BR>"
        End If
%>
Avatar billede justdoit Nybegynder
11. august 2002 - 23:58 #22
Her er includeringsfilen:

Function FileUpload(strPath, intMaxSize, arrAcceptType, arrAcceptExt, ByRef strContentType, ByRef strFilename, ByRef intFileTotalBytes)
    'Variable deklaration
    Dim intPostTotalBytes, intStartPos, intEndPos, i
    Dim bstrPostData, bstrDivider
    Dim strTemp, strFileSpec
    Dim arrSplit
    Dim vbCrLfB
    Dim bolStopLoop, bolContentTypeOK, bolExtOK
    Dim fs, ts, f

    'Sæt returværdier
    strContentType = ""
    strFilename = ""
    intFileTotalBytes = 0

    'Check: Er det faktisk POST upload?
    If Request.ServerVariables("REQUEST_METHOD") = "POST" Then

        'Dan vbCrLf som binær streng
        vbCrLfB = ChrB(13) & ChrB(10)

        'Hent den binære POST fra brugeren
        intPostTotalBytes = Request.TotalBytes 'Find antallet af bytes i POST
      ' bstrPostData = Request.BinaryRead(intPostTotalBytes) 'Hent POST til en binær streng
        If LenB(bstrPostData) <> intPostTotalBytes Then 'Check: Er antallet af bytes i POST forskelligt fra den binære streng?
            'Returner værdi og stop
            FileUpload = 1
            Exit Function
        End If

        'Hent delelinien inkl. vbCrLfB (altid hele første linje)
        bstrDivider = LeftB(bstrPostData, InStrB(bstrPostData, vbCrLfB) + 1)

        'Default StartPos
        intStartPos = 1
     
        'Find Content-Disposition hvor name="fileupload"
        bolStopLoop = False
        Do
            'Find starten af denne Content del (umiddelbart efter delelinien)
            intStartPos = InStrB(intStartPos, bstrPostData, bstrDivider) + LenB(bstrDivider)
            If intStartPos = 0 Then
                'Ikke flere Content delere - Returner værdi og stop
                FileUpload = 2
                Exit Function
            End If

            'Find slutningen af denne Content del (umiddelbart inden den næste delelinie)
            intEndPos = InStrB(intStartPos, bstrPostData, bstrDivider)
            If intEndPos = 0 Then
                'Ikke flere Content delere - Returner værdi og stop
                FileUpload = 2
                Exit Function
            End If

            'Hent denne Content-Disposition (uden vbCrLf)
            strTemp = bin2str(MidB(bstrPostData, intStartPos, InStrB(intStartPos, bstrPostData, vbCrLfB) - intStartPos))

            'Er fileupload feltet i denne Content-Disposition?
            If InStr(LCase(strTemp), "name=""fileupload""") > 0 Then
                'Stop løkken her
                bolStopLoop = True
            Else
                'Start igen umiddelbart efter denne Content, men før næste divider
                intStartPos = intEndPos
            End If
        Loop Until bolStopLoop

        'Flyt intStartPos til efter Content-Disposition linjen
        intStartPos = intStartPos + Len(strTemp) + 2

        'Ekstrakt POST filnavnet fra strTemp
        arrSplit = Split(strTemp, ";") 'Opdel strTemp ved ;: Content-Disposition: form-data; name="fileupload"; filename="filen.txt"

        'Find filnavnet fra filename= array
        strTemp = "" 'Værdi ved fejl
        For i = 0 To UBound(arrSplit) 'Køres for alle i denne array
            If LCase(Left(Trim(arrSplit(i)), 9)) = "filename=" Then 'Står der filename= ?
                strTemp = Trim(arrSplit(i))
                Exit For
            End If
        Next

        'Afbryd hvis der ikke blev fundet noget filnavn
        If strTemp = "" Or strTemp = "filename=""""" Then
            FileUpload = 3
            Exit Function
        End If

        'Find filnavnet
        arrSplit = Split(strTemp, """")        'Opdel streng ved "
        strTemp = arrSplit(UBound(arrSplit) - 1) 'Næstsidste indholder filnavn
        arrSplit = Split(strTemp, "\") 'Del ved alle \  Så indeholder den sidste filnavn.ext"
        strFilename = arrSplit(UBound(arrSplit)) 'Hent den sidste array, der må være filnavnet

        'Dan det fulde outputfilnavn via MapPath
        strFileSpec = Server.MapPath(LCase(strPath & strFilename)) 'LCase kan evt fjernes herfra

        'Hent Content-Type (uden vbCrLf)
        strTemp = bin2str(MidB(bstrPostData, intStartPos, InStrB(intStartPos, bstrPostData, vbCrLfB) - intStartPos))

        'Flyt intStartPos til efter Content-Type linjen
        intStartPos = intStartPos + Len(strTemp) + 2
       
        'Ekstrakt POST Content-Type
        arrSplit = Split(strTemp, " ")
        strContentType = arrSplit(UBound(arrSplit))

        'Skal Content-Type checkes?
        bolContentTypeOK = False
        If arrAcceptType(LBound(arrAcceptType)) <> "" Then
            For Each strTemp In arrAcceptType
                If strContentType = strTemp Then
                    bolContentTypeOK = True
                End If
            Next

            'Check: Er det en accepteret Content-Type?
            If Not bolContentTypeOK Then
                'ContentType ikke fundet - Returner værdi og stop
                FileUpload = 4
                Exit Function
            End If
        End If

        'Skal ekstention checkes?
        bolExtOK = False
        If arrAcceptExt(LBound(arrAcceptExt)) <> "" Then
            For Each strTemp In arrAcceptExt
                If LCase(Right(strFilename, Len(strTemp))) = strTemp Then
                    bolExtOK = True
                End If
            Next

            'Check: Er det en accepteret ekstention?
            If Not bolExtOK Then
                'Ekstention ikke fundet - Returner værdi og stop
                FileUpload = 5
                Exit Function
            End If
        End If

        'Find faktiske start/slut på datafilen ved at fjerne foranstillede og efterstillede vbCrLfB
        intStartPos = intStartPos + 2
        intEndPos = intEndPos - 2
        intFileTotalBytes = intEndPos - intStartPos

        'Skal filstørrelsen checkes?
        If intMaxSize > 0 Then
            'Check: Er filen for stor?
            If intFileTotalBytes > intMaxSize Then
                'Filen er for stor - Returner værdi og stop
                FileUpload = 6
                Exit Function
            End If
        End If

        'Åbn, skriv og luk outputfilen
        Set fs = CreateObject("Scripting.FileSystemObject") 'Filsystem objekt
        Set ts = fs.CreateTextFile(strFileSpec, True) 'Åbn outputfil, overskriv evt. eksisterende
        For i = intStartPos To intEndPos - 1
            ts.Write(Chr(AscB(MidB(bstrPostData, i, 1)))) 'Skriv data eet tegn af gangen
        Next
        ts.Close 'Luk outputfil

        'Check: Blev filen oprettet og har den samme størrelse?
        Set f = fs.GetFile(strFileSpec)
        If f.Size <> intFileTotalBytes Then
                FileUpload = 7
                Exit Function
        End If

        '* Returner OK
        FileUpload = 0
    End If
End Function

'* Funktion der oversætter en bstr binær streng til en almindelig streng
'* Pas på med 00 værdier, da de fungerer som EOF i en almindelig streng
Function bin2str(bstrBinary)
    Dim i
    For i = 1 To LenB(bstrBinary)
      bin2str = bin2str & Chr(AscB(MidB(bstrBinary, i, 1)))
    Next
End Function
Avatar billede justdoit Nybegynder
11. august 2002 - 23:59 #23
Fejler er her

bstrPostData = Request.BinaryRead(intPostTotalBytes)

Men jeg aner ikke hvad???  HELPP
Avatar billede oasen Nybegynder
12. august 2002 - 07:11 #24
Det var dog en frygtelig masse kode for næsten ingenting...
Avatar billede justdoit Nybegynder
12. august 2002 - 10:35 #25
Hvis du syntes det ikke er noget, kan du så udbedere fejlen?? Det er noget med at jeg ikke kan kalde request.form når jeg bruger BinaryRead??
Avatar billede oasen Nybegynder
12. august 2002 - 14:31 #26
Ja, du kan ikke bruge request, som du plejer.

Jeg siger såmænd bare, at det er langt smartere med en komponent, og din server har tilsyneladende komponenten installeret.
Avatar billede justdoit Nybegynder
12. august 2002 - 19:32 #27
Hvad er forskellen på komponent og ikke?
Avatar billede oasen Nybegynder
13. august 2002 - 16:03 #28
Ved at bruge en komponent gør du brug af en masse kode, der ER skrevet for dig på den HELT rigtige måde.
Avatar billede justdoit Nybegynder
13. august 2002 - 23:22 #29
ok, men jeg arbejder lige lidt mere på mit eget, ellers må jeg jo prøve et komponent!
Avatar billede oasen Nybegynder
14. august 2002 - 12:57 #30
OK, men det undrer mig stadig, du ikke kunne få mit sidste eksempel med komponent til at fungere..
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