Avatar billede Slettet bruger
06. februar 2003 - 15:33 Der er 17 kommentarer og
1 løsning

ASP UPLOAD + Filtjek

Jeg benytter aspopload til at lægge en fil i en mappe på mit webhotel samt noget tekst i en db.

Det script jeg har bikset med i 4 timer nu virker ikke men det skal kunne følgende:

1) Tjekke om filen er for stor
2) Tjekke om filnavnet matcher en der allerede er oprettet

Min kode ser ca sådan ud:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")

For Each File in Upload.Files

sti = File.Path
Arr = Split(sti, "\")
filnavn = Arr(UBound(Arr))

next

If Upload.FileExists(Server.MapPath("/Log/JPG_GIF/"& filnavn))Then
response.write("Der findes allerede en fil med det angivne navn. Omdøb filen hvis du stadig ønsker den lagt i mediebiblioteket.")
else
response.write(filnavn)
end if

%>
Avatar billede Slettet bruger
06. februar 2003 - 15:57 #1
Jeg har ikke så store problemer med at oprette filen samtidig med at jeg skriver i db, det er mere det at tjekke om den i forvejen findes..
Avatar billede chrisrj Forsker
06. februar 2003 - 16:00 #2
Hvis du bruger denne linie:

Upload.OverwriteFiles = False

Bliver filerne ikke overskrevet.
Avatar billede chrisrj Forsker
06. februar 2003 - 16:01 #3
..Også kan du hive filnavnet ud på denne måde:

Filnavn = Upload.Files("FILE1").ExtractFilename
Avatar billede somaliomar Praktikant
07. februar 2003 - 07:19 #4
Jeg har aldrig før leget med ASP Upload, men jeg skyder på at koden skal se sådan ud:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save "C:\STI_HVOR_FILERNE_SKAL_GEMMES"

For Each File in Upload.Files

    sti = File.Path
    Arr = Split(sti, "\")
    filnavn = Arr(UBound(Arr))

    If Upload.FileExists(Server.MapPath("/Log/JPG_GIF/" & filnavn)) Then
        response.write("Der findes allerede en fil med det angivne navn. " & _
        "Omdøb filen hvis du stadig ønsker den lagt i mediebiblioteket.")
    else
        response.write(filnavn)
    end if

Next File


%>
Avatar billede somaliomar Praktikant
07. februar 2003 - 07:47 #5
<%

Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save "C:\TEMP_FOLDER"

Response.Write Count & " filer uploaded til C:\TEMP_FOLDER"

For Each File in Upload.Files

    Filnavn = File.ExtractFilename

    If Upload.FileExists(Filnavn) Then
        response.write("Der findes allerede en fil med det angivne navn. " & _
        "Omdøb filen hvis du stadig ønsker den lagt i mediebiblioteket.")
    else
        If File.Size < 100000 Then
            response.write(filnavn)
        Else
            response.write("Filen er for stor")
        End If
    end if
Next

%>
Avatar billede Slettet bruger
07. februar 2003 - 09:59 #6
chrisrj ->>

God ide men jeg kan desværre ikke få den til at hente filnavnet ved hjælp af den beskrevne metode... den skriver intet til databasen, FILE1 er filstien...kan det være derfor:

Du får lige min tilrettede kode:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Typefil = Upload.form("typ")
IF Typefil = "1" Then
Upload.SetMaxSize 250000, True
Upload.OverwriteFiles = False
Count = Upload.SaveVirtual("/log/JPG_GIF/")
if Err <> 0 Then
Response.Write "Billedet fylder mere end det tilladte. Det tilladte er 250 kb."
else
Response.Write "Billedet er lagt i dit mediebibliotek uden problemer"
end if
end if

Filnavn = Upload.Files(File.Path).ExtractFilename
Remark = Upload.form("remark")
Filstr = Upload.files(File.Path).OriginalSize

DB = "Insert into Filer (Typ,Remark,Path) VALUES ('"&Typefil&"','"&Remark&"','"&Filnavn&"')"
Conn.Execute(DB)


If Err = 0 Then
response.write("<b>Filens karakter er som følger:</b><br>")
response.write("<b>Filens navn:</b> "&Filnavn&"<br>")
response.write("<b>Filens størrelse:</b> "&Filstr&"<br>")
end if
Avatar billede Slettet bruger
07. februar 2003 - 10:00 #7
File.Path er selvfølgelig FILE1
Avatar billede chrisrj Forsker
07. februar 2003 - 10:10 #8
På min form her jeg denne:

<INPUT TYPE="FILE" SIZE="30" NAME="FILE1">

Og her er min upload funktion:

Upload.OverwriteFiles = False

Count = Upload.Savevirtual("../upload/")
If Not Upload.Files("FILE1") Is Nothing Then
    Filnavn = Upload.Files("FILE1").ExtractFilename
End If

For Each File in Upload.Files
    If File.ImageType <> "GIF" and File.ImageType <> "JPG" Then
        filtype="t"
    else
        Filnavn = Upload.Files("FILE1").ExtractFilename
    filtype="b"
        if File.ImageWidth > 350 then
        width = 350
        else
        width = File.ImageWidth
        end if
        if File.ImageWidth > 400 then
        height = 400
        else
        height = File.ImageHeight
        end if
        Response.Write "tak!"
    End If
next

Og så ligger jeg "filnavn" ind i databasen.

Er "typ" navnet på din fil-input?
Avatar billede Slettet bruger
07. februar 2003 - 10:29 #9
Jeg tror måske det virker men min extractfilename giver mig hele stien... skal den det?
Avatar billede chrisrj Forsker
07. februar 2003 - 10:46 #10
Nej, den skal kun give filnavnet.

Hvordan ser din form ud?
Avatar billede Slettet bruger
07. februar 2003 - 10:52 #11
<table width="438">
<tr>
<td width="126" class="tekst"><font color="#666666">Angiv filtypen</font></td>
<td width="300" height="12" class="stylish"><font color="#333333"><span class="tekst"><font color="#333333"><span class="tekst">

<select name="typ">
<option value="1" selected>Billede</option>
<option value="2">PDF fil</option>
<option value="3">Word fil</option>
<option value="4">Mp3 fil</option>
<option value="5">Video</option>
<option value="6">Excell</option>
<option value="7">ZIP</option>
</select>

</span></font><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
</font> </span> </font> </td>
</tr>
<tr>
<td class="tekst"><font color="#666666">Fil / billed tekst</font></td>
<td height="12" class="stylish"><font color="#333333"><span class="tekst">
<input type="text" name="remark" size="40"></span></font></td>
</tr><tr>
<td class="tekst"><font color="#666666">Fil / billedsti:</font></td>
<td> <font color="#333333"><span class="tekst">
<input name="FILE1" type="file" id="FILE1" size="40">
</span></font></td></tr><tr><td height="22">&nbsp;</td>
<td> <font color="#333333"><span class="tekst">
<input name="submit" type="submit" value="Opret ">
</span></font></td>
</tr>
</table>
Avatar billede Slettet bruger
07. februar 2003 - 10:53 #12
formen er en enctype selfølgelig
Avatar billede chrisrj Forsker
07. februar 2003 - 10:57 #13
Prøv den her:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Typefil = Upload.form("typ")
IF Typefil = "1" Then
Upload.SetMaxSize 250000, True
Upload.OverwriteFiles = False
Count = Upload.SaveVirtual("/log/JPG_GIF/")
if Err <> 0 Then
Response.Write "Billedet fylder mere end det tilladte. Det tilladte er 250 kb."
else
Response.Write "Billedet er lagt i dit mediebibliotek uden problemer"
end if
end if

Filnavn = Upload.Files("FILE1").ExtractFilename
Remark = Upload.form("remark")
Filstr = Upload.files(File.Path).OriginalSize

DB = "Insert into Filer (Typ,Remark,Path) VALUES ('"&Typefil&"','"&Remark&"','"&Filnavn&"')"
Conn.Execute(DB)


If Err = 0 Then
response.write("<b>Filens karakter er som følger:</b><br>")
response.write("<b>Filens navn:</b> "&Filnavn&"<br>")
response.write("<b>Filens størrelse:</b> "&Filstr&"<br>")
end if
Avatar billede chrisrj Forsker
07. februar 2003 - 11:00 #14
Forresten, har du ikke overvejet at lukke nogle af dine gamle spørgsmål? :)
Der er nogle fra 99!! :)
Avatar billede Slettet bruger
07. februar 2003 - 11:07 #15
Wooops...jeg troede jeg havde fået lukket dem...plejer at få en mail om gamle spg....jeg kigger og lukker...
Avatar billede Slettet bruger
07. februar 2003 - 11:08 #16
Men du har jo faktisk gjort det jeg efterspurgte så here you go...
Avatar billede chrisrj Forsker
07. februar 2003 - 11:18 #17
Tak for points!
Avatar billede chrisrj Forsker
07. februar 2003 - 11:20 #18
"Wooops...jeg troede jeg havde fået lukket dem...plejer at få en mail om gamle spg....jeg kigger og lukker..."

Ja, det var i de gode gamle dage :(

Jeg har også lige gennemgået mine gamle spg...der var liige nogle der manglede. :)
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