Avatar billede fun22 Nybegynder
14. august 2006 - 17:43 Der er 16 kommentarer og
1 løsning

Loop køre igen og igen

Hej

JEg har et upload script som gør lidt problemer..

Jeg har en form med fire file felter:

<input type="file" name="file1" size="26">
<input type="file" name="file2" size="26">
<input type="file" name="file3" size="26">
<input type="file" name="file4" size="26">

OG så i selve scriptet er der det her der løber felterne igennem:

For each file In mySmartUpload.Files
  If not file.IsMissing Then
       
    file.SaveAs("/img/items/"& ID &"/"&file.FileName)         
    PicCount = PicCount + 1
                 
  End If
Next

Men den kommer aldrig længere end der til.. Den står bare og loader helt vildt og den grønne bar nede i bunden giver nogen blink en gang i mellem..

Hvad kan der være galt?
Avatar billede nidyahou Praktikant
14. august 2006 - 17:51 #1
er der mere kode vi kan få lov til at se - ved du faktisk at det er den linie den stopper ved?
Avatar billede fun22 Nybegynder
14. august 2006 - 17:53 #2
Det er bare et gæt da det er det eneste loop der er..

<!-- #Include file="dbconn.asp" -->
<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
   
    On Error Resume Next
   
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  Set fso=Server.CreateObject("Scripting.FileSystemObject")
 
'  Only allow txt or htm files
'  ***************************
    mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"

'  DeniedFilesList can also be used :
  ' Allow all files except exe, bat and asp
  ' ***************************************
  ' mySmartUpload.DeniedFilesList = "exe,bat,asp"

'  Deny physical path
'  *******************
  mySmartUpload.DenyPhysicalPath = True

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

'  Deny upload if the total fila size is greater than 200000 bytes
'  ***************************************************************
  mySmartUpload.TotalMaxFileSize = 3000000

'  Upload
'  ******
    Title = mySmartUpload.form("title")
    cat = mySmartUpload.form("cat")
    text = mySmartUpload.form("text")
    data = mySmartUpload.form("data")
    extra = mySmartUpload.form("extra")
   
    strQuery_add = "INSERT INTO jb_items (cat, title, text, data, extra) VALUES ('" & cat & "', '" & Title & "', '" & text & "', '" & data & "', '" & extra & "')"
    Set objRS_add = conn.Execute(strQuery_add)   
   
    Set Rs = Conn.Execute("SELECT * FROM jb_items WHERE title = '"&Title&"'")
   
    ID = rs("id")
   
    if NOT fso.FolderExists(Server.Mappath("/img/items/"&ID)) then
        fso.CreateFolder(Server.Mappath("/img/items/"&ID))
    end if
   
  mySmartUpload.Upload
 
      PicCount = 0
     
        For each file In mySmartUpload.Files
          If not file.IsMissing Then
       
                file.SaveAs("/img/items/"& ID &"/"&file.FileName)         
                  PicCount = PicCount + 1
                 
          End If
        Next
       
        strQuery_Update = "UPDATE jb_items SET piccount = '" & PicCount & "' WHERE id = "&id
        conn.Execute(strQuery_Update)
       
      response.redirect "?Side=nyt_produkt"
%>
Avatar billede nielle Nybegynder
14. august 2006 - 19:02 #3
Har du tjekket efter om dine INSERT- og UPDATE-sætninger bliver udført?

Og ellers tror jeg at fejlen sagtens kunne være i denne her:

Response.Redirect "?Side=nyt_produkt"

- idet den redirecter tilbage til siden selv - dvs. siden looper. Skal brugerne ikke sendes hen til en anden side efter at de har uploadet?
Avatar billede cpufan Juniormester
14. august 2006 - 22:29 #4
udkommenter denne ved fejlsøgnming:

on error resume next


da den jo netop skipper fejl og går videre,
hvorved du aldrig finder dine fejl
Avatar billede fun22 Nybegynder
15. august 2006 - 08:13 #5
nielle >> Godt observeret.. Det var netop det med at den kalder sig selv hele tiden...

Men kan du sige mig hvorfor den ikke tager form felterne med?

Title = mySmartUpload.form("title")
cat = mySmartUpload.form("cat")
text = mySmartUpload.form("text")
data = mySmartUpload.form("data")
extra = mySmartUpload.form("extra")

De er bare blanke... Selvom de indeholder noget og har samme navn..
Avatar billede nielle Nybegynder
15. august 2006 - 10:04 #6
Form-felterne bliver kun sendt når at man submitter en form. De er der altså 1. gang at du lander på siden.

De bliver ikke sendt med når man redirecter en side. De er der altså ikke 2., 3., 4., osv. gang at du lander tilbage på siden.

Du kan inkludere dem som en del af url'et:

Response.Redirect "?Side=nyt_produkt&titel=" & titel & "&cat=" & cat "& ..."

- men så skal de efterefølgende aflæses via QueryString i stedet for Form:

Titel = Request.QueryString("titel")
Avatar billede fun22 Nybegynder
15. august 2006 - 11:03 #7
Du misforstår mig..

Min form indeholder både de felter og upload feltet.. Når jeg så submitter så sendes det jo til min upload fil.. Og så skulle den jo også gerne kunne hente dem..
Avatar billede nielle Nybegynder
15. august 2006 - 11:15 #8
Undskylder :^)

Nu har du jo kun vise noget af din form, så det er lidt svært at udtale sig om f.eks. title-feltet. Umiddelbart kan jeg dog ikke set noget galt ved din kode.
Avatar billede fun22 Nybegynder
15. august 2006 - 11:31 #9
Hele formen ser sådan ud:


            <h3>Tilføj et nyt produkt</h3>
            <form method="POST" action="fil_upload.asp" enctype="multipart/form-data">
            <table border="0" width="571" id="table1">
                <tr>
                    <td width="210"><b>Titel:</b></td>
                    <td width="319">
                    <input type="text" name="title" size="41">
                    </td>
                    <td width="392">
                    Titel på produktet..</td>
                </tr>
                <tr>
                    <td width="210"><b>Kategori:</b></td>
                    <td width="319">
                    <select size="1" name="cat">
                    <option value="1">Behandlingslejer</option>
                    <option value="2">Inventar</option>
                    <option value="3">Transport</option>
                    <option value="4">Pædiatri</option>
                    <option value="5">Neonatal</option>
                    <option value="6">Vugger</option>
                    <option value="7">Ammeprodukter</option>
                    <option value="8">Brystpumpe udlej.</option>
                    </select></td>
                    <td width="392">
                    Vælg hvilken kategori, produktet skal i.</td>
                </tr>
                <tr>
                    <td width="210"><b>Beskrivelse:</b></td>
                    <td width="319"><textarea rows="10" name="text" cols="32"></textarea></td>
                    <td width="392">Giv en beskrivelse af produktet. Brug &lt;B&gt;<b>Til
                    at lave fed tekst</b>&lt;/B&gt;</td>
                </tr>
                <tr>
                    <td width="210"><b>Data:</b></td>
                    <td width="319"><textarea rows="7" name="data" cols="32"></textarea></td>
                    <td width="392">Angiv de tekniske specifikationer.</td>
                </tr>
                <tr>
                    <td width="210"><b>Ekstra</b></td>
                    <td width="319"><textarea rows="7" name="extra" cols="32"></textarea></td>
                    <td width="392">Angiv hvilke ekstra ting der følger med.</td>
                </tr>
                <tr>
                    <td width="210"><b>Lille billede:</b></td>
                    <td width="319"><input type="file" name="file1" size="26"></td>
                    <td width="392">Det billede som vises i oversigten.</td>
                </tr>
                <tr>
                    <td width="210"><b>Billede 1:</b></td>
                    <td width="319"><input type="file" name="file2" size="26"></td>
                    <td width="392">Billede i produktbeskrivelsen..</td>
                </tr>
                <tr>
                    <td width="210"><b>Billede 2:</b></td>
                    <td width="319"><input type="file" name="file3" size="26"></td>
                    <td width="392">Billede i produktbeskrivelsen..</td>
                </tr>
                <tr>
                    <td width="210"><b>Billede 3:</b></td>
                    <td width="319"><input type="file" name="file4" size="26"></td>
                    <td width="392">Billede i produktbeskrivelsen..</td>
                </tr>
            </table>
            <p align="center">
            <input type="submit" value="Gem" name="B1">
            </p>
            </form><br>
Avatar billede nielle Nybegynder
15. august 2006 - 11:47 #10
Bortset fra at du ikke har noget input-felt i din form med navnet "title", kan jeg ikke se noget galt med den. :^|
Avatar billede fun22 Nybegynder
15. august 2006 - 11:49 #11
Det har jeg:

<input type="text" name="title" size="41">

Næsten øverst ;)

Men den henter ikke indholdet fra felterne.. :(
Avatar billede nielle Nybegynder
15. august 2006 - 11:54 #12
Ah, den overså jeg. Får du heller ikke filerne med over?
Avatar billede fun22 Nybegynder
15. august 2006 - 12:01 #13
jo de kommer fint.. det er kun selve tekst felterne der ikke kommer..
Avatar billede nielle Nybegynder
15. august 2006 - 12:03 #14
Hmm, mystisk. Din kode synes eller at stemme fint med de kode eksempler de selv giver på:

http://www.aspsmart.com/aspSmartUpload/

Den kan jeg altså ikke lige gennemskue. :^|
Avatar billede fun22 Nybegynder
15. august 2006 - 17:47 #15
Nu har jeg fundet ud af det... Det skyldes at mySmartUpload.Upload var under felterne. Den skal være over, for ellers indeholder mySmartUpload ikke noget..
Avatar billede fun22 Nybegynder
15. august 2006 - 17:48 #16
men smid et svar.. Du hjalp jo trods alt med det det startede med ;)
Avatar billede nielle Nybegynder
15. august 2006 - 19:58 #17
Ahh - je den var da ikke lige sådan til at gennemskue.

... og et svar :^)
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