Avatar billede Spotgun Seniormester
15. august 2001 - 16:22 Der er 23 kommentarer og
1 løsning

ASPUpload uden forms

Jeg har på min server et dir, hvor der ligger en stak små .jpg filer (tumbnails) som jeg skal ha\' smidt i en database. Jeg skal ha\' hele billedet ind, og ikke bare et link til filen.

Jeg har rodet lidt rundt med ASPUpload, men kan tilsyneladende kun få den til at uploade hvis jeg bruger en form, hvilket ikke er brugbart i dette tilfælde.

Er der en måde hvorpå man kan få ASPUpload til at tage alle de filer der ligger i et bestemt dir, og uploade dem i databasen, uden nogen brug af forms?
Avatar billede erikjacobsen Ekspert
15. august 2001 - 17:13 #1
nej
Avatar billede Spotgun Seniormester
15. august 2001 - 17:15 #2
Kort og kontakt svar... :-)

Ved du så om der findes andre måder at gøre det på? Evt. med andre komponenter?
Avatar billede Spotgun Seniormester
15. august 2001 - 17:15 #3
Kontakt = kontant...
Avatar billede nuno Nybegynder
15. august 2001 - 17:15 #4
nej - erik har ret - jeg har dog set en .ocx fil som kan simulere en form ved upload med fx asp

/nuno
Avatar billede erikjacobsen Ekspert
15. august 2001 - 17:17 #5
du kan ftp-e dine billeder til serveren, og putte dem i databasen derfra.
Avatar billede nuno Nybegynder
15. august 2001 - 17:22 #6
http://web.singnet.com.sg/~kegoh/CSInet.htm

hvis der er nogen der skulle være interesseret (der er dog bare en fejl i koden - for den uploader og skrive een Byte mere til destinationsfilen end der er i source filen  ........så vidt jeg husker - det er et godt stykke tid siden jeg har rodet med det)

Avatar billede burningice Nybegynder
15. august 2001 - 18:48 #7
uhm... hvad med at lave et asp script der tjekker hvilke filer der ligger et et bestemt dig, generer et js som indeholder en form der automatisk bliver submittet når siden loades og derefter lukker siden... asp scriptet sletter så filen og går videre til næste fil...når der til sidst ikke er flere filer får vi en \"Job Completed\" besked
Avatar billede erikjacobsen Ekspert
15. august 2001 - 21:02 #8
Du kan ikke gøre det med JavaScript i en browser, cyberfessor
Avatar billede burningice Nybegynder
15. august 2001 - 21:09 #9
hvorfor ikke... du kan da submitte en form via js, hvis denne form nu er dynamisk lavet med asp, og bliver submittet for hver billede der findes i et givet directory, hvad er så problemet??

Du sætter scriptet igang, browseren tygger lidt på det, blinker evt et par gange, og så er den klaret...
Avatar billede erikjacobsen Ekspert
15. august 2001 - 21:15 #10
Fordi jeg siger man ikke kan, og jeg bestemmer over alle browsere :)

Nej, det er fordi man med JS ikke kan putte værdier ind i et <input type=\"file\" ...>
felt. Af sikkerhedshensyn, for ellers kunne en harmløs webside hente filer hos dig.
Avatar billede burningice Nybegynder
15. august 2001 - 21:24 #11
ooh... dvs at hvis man har en form med input type=\"file\" og prøver at submitte den via js (document.form.submit()) så melder den fejl??
Avatar billede erikjacobsen Ekspert
15. august 2001 - 21:42 #12
nej, hvis du har <input type=\"file\" name=\"ekspertenfest\"> og forsøger at
sige document.formnavnet.ekspertenfest.value=\"C:/AUTOEXEC.BAT\";
så kommer der ikke nogen værdi ind i feltet og heller ingen fejl.

Retfærdigvis skal siges, at man kan afvikle et almindeligt program på klienten,
fx skrevet i Perl, som kan uploade en række billeder. Det kan skrives, kan det, jo da
(men ikke for point af mig)
Avatar billede burningice Nybegynder
15. august 2001 - 21:47 #13
jamen jeg har da heller ikke sagt at man skal bruge
document.formnavnet.ekspertenfest.value=\"C:/AUTOEXEC.BAT\";

men hvad med dette eksempel, virker det??

<body onload=\"document.formnavn.submit()\">

<form name=\"formnavn\" action=\"side.asp\">
<input type=\"file\" name=\"fil\">c:\\autoexec.bat</input>
</form>
</body>
Avatar billede burningice Nybegynder
15. august 2001 - 21:48 #14
c:\\autoexec.bat er selvfølgelig autogeneret filnavn på det billede som vi efterhånden er noget til i rækken af billeder som skal smides ind i db\'en
Avatar billede erikjacobsen Ekspert
15. august 2001 - 21:48 #15
Nej, for der er ikke noget i valuefeltet i, og du kan ikke engang skrive

<input type=\"file\" name=\"fil\" value=\"c:/autoexec.bat\">

feltet bliver tomt. Prøv bare

Avatar billede burningice Nybegynder
15. august 2001 - 21:53 #16
jeg tror dig, det er bare først nu at jeg føler at du har svaret konkret på det som jeg spurgte om :)
Avatar billede erikjacobsen Ekspert
15. august 2001 - 22:02 #17
Helt i orden. Det bør heller ikke kunne lade sig gøre. Jeg kunne måske
gætte hvor din dyrebareste oplysning findes på din maskine (fx din cookie
til eksperten.dk), og så smider jeg et link her, som du simpelthen må klikke
på, og vupti så stjæler jeg alle dine point.
Avatar billede burningice Nybegynder
15. august 2001 - 22:03 #18
så vil jeg bare melde dig til admin :P
Avatar billede Spotgun Seniormester
16. august 2001 - 07:59 #19
Erikjacobsen >> Det KAN faktisk godt la\' sig gøre at uploade uden brug af forms med ASPUpload. Jeg sad i nat og rodede med det, og det er nu lykkedes mig, at ta\' en sti (incl. filnavn) og smide filen op i hukommelsen, og derefter ned i databasen, og det helt uden brug af forms...

Så øv bøv, jeg er bedre end dig :-)

Sig til hvis I vil se løsningen!
Avatar billede burningice Nybegynder
16. august 2001 - 13:19 #20
jeg vil da gerne se hvordan!!
Avatar billede Spotgun Seniormester
16. august 2001 - 23:16 #21
Her er scriptet:

<%
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\" & Server.MapPath(\"MB_Thumbs.mdb\")

    Set RS = Server.CreateObject(\"ADODB.RecordSet\")
    RS.Open \"SELECT * FROM Paths ORDER BY ID\", Conn, 1, 3
    RS.MoveNext
    Set Upload = Server.CreateObject(\"Persits.Upload\")
   
    While Not RS.EOF
        imgPath = RS(\"Path\")

        Response.write \"Path: \"& imgPath &\"<br>\"
        Response.flush

        Response.flush
        Do While Counter < 11
            Set MyFile = Upload.OpenFile(imgPath)
            MyFile.ToDatabase \"DSN=Thumbs;UID=sa;PWD=;\", \"INSERT INTO Thumbnails(Image) VALUES(?)\"
            If Err <> 0 Then
                Response.Write \"Error saving the file: \" & Err.Description &\"<p>\"
            Else
                Response.Write \"Success nr. \"& Counter &\"!<p>\"
            End If
            Set MyFile = Nothing
        Loop
        RS.MoveNext   
    Wend
    RS.Close
    Set RS = Nothing
    Set Upload = Nothing
    Set Conn = Nothing
%>

Efter at ha\' nærlæst jeres diskussion lidt, ser det muligvis ud til at erikjacobsen har misforstået mit spørgsmål lidt. Jeg skulle ikke ha\' brugeren til at sende de billeder der skulle uploades, det var nogle der allerede lå på serveren.
Avatar billede Spotgun Seniormester
16. august 2001 - 23:17 #22
Der sneg sig lige en lille fejl ind. Fjern linien med:

Else
    Response.Write \"Success nr. \"& Counter &\"!<p>\"

som findes i slutningen af scriptet. Det blev kun brugt til testformål... :) 
Avatar billede Spotgun Seniormester
16. august 2001 - 23:19 #23
Jeg burde gå i seng. Fjern også lige linien:

Response.Flush
Do While Counter < 11

og den tilhørende:

Loop


15 timer dagligt foran computeren må ha\' en skadelig virkning :)
Avatar billede erikjacobsen Ekspert
16. august 2001 - 23:23 #24
Ja, jeg fik ikke læst det 5\'te ord i dit spørgsmål: \"server\"  *g*
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