Avatar billede tzag_dk Nybegynder
12. marts 2004 - 10:11 Der er 4 kommentarer og
2 løsninger

aspSmartUpload Fejl koder

Hej

Jeg har lavet dette script, men der er nogle problemer med det.

1. MaxFileSize virker ikke, det er lige som om at den er ligeglad med den.

2. Når filen er for stor, skal der komme en bruger defineret fejl meddelse.

3. Når filtypen ikke er af "jpg,jpeg,gif" skal den komme med en bruger defineret fejl meddelse.


<HTML>
<LINK href="/css/style.css" type=text/css rel=stylesheet>
<title>Tilf&oslash;j profil billede</title><BODY BGCOLOR="white">
<!--#include virtual="/secure/connection.asp"-->
<% Session.LCID = 1030
If Request.QueryString("mode") = "upload" then
'On Error Resume Next
  Dim mySmartUpload
  Dim file

MAX_UPLOAD_SIZE = 1000000

if Request.ServerVariables("CONTENT_LENGTH")< MAX_UPLOAD_SIZE then
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

  mySmartUpload.MaxFileSize = 1000000
  mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"

'  Upload
'  ******
  mySmartUpload.Upload

For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If Not mySmartUpload.files.item(1).IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  ****************************************************************************
If Err.Number <> "0" Or Trim(mySmartUpload.files.item(1).TypeMIME) <> "image" Then
Response.Write "Filen er ugyldig!"
Else
SQL = "insert into profilbilleder (billede,profilerID,godkendt) values('','" & request.QueryString("profilerID") & "','0')"
Conn.execute(SQL)

SQL2 = "SELECT last_insert_id() FROM profilbilleder"
Set RS = Conn.Execute(SQL2)
nytID = RS(0)
        file.SaveAs("/images/profilbilleder/" & nytID&file.FileName)

SQL = "UPDATE profilbilleder SET billede = '" & nytID&file.FileName & "' WHERE id = '" & nytID & "'"
Conn.execute(SQL)

end if
End If
next
else
  Response.write ("File too large to be uploaded.")
end if
'response.Redirect("uploadprofilbillede.asp?mode=ok")
end if

If Request.QueryString("mode") = "" then
sqlfind="Select Count(*) as Found from profilbilleder where (profilerID = '" & Session("id") & "')"
set RSfind = Conn.execute(sqlfind)

if RSfind("Found") = "1" then%>
Du kan højst have et profil billede.
<% else %>
Tilf&oslash;j profil billede!<br>
<br>
Det er kun billede typer der ender p&aring;: jpg, jpeg og gif der kan uploades!<br>
Billedet m&aring; h&oslash;jest fylde 1MB.<br>
<FORM METHOD="POST" ACTION="uploadprofilbillede.asp?mode=upload&profilerID=<%=request.QueryString("id")%>" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
  <br>
  <INPUT TYPE="image" name="submit" src="/images/next.jpg">
</FORM>
<% end if %>
<% end if
if Request.QueryString("mode") = "ok" then%>
<script LANGUAGE="javascript">
    opener.document.location.reload();
    window.close();
</script>
<%end if%>
</BODY>
</HTML>

Hvis jeg forsøger at uploade en jpg fil der fylder 700KB, kommer den med denne fejl:
Request object error 'ASP 0104 : 80004005'

Operation not Allowed

/profil/rediger/uploadprofilbillede.asp, line 21

Men den laver ingen fejl hvis jeg uploader en jpg fil på 50KB

Koden er noget rodet, så det kunne også godt være at der skulle "tømmes" lidt ud i den :-)

På forhånd tak!
// Rene
Avatar billede cesil Nybegynder
12. marts 2004 - 10:23 #1
Hvis det er en win2003 server du ligger på er her løsningen.

http://www.dmxzone.com/showDetail.asp?TypeId=7&NewsId=5424
Avatar billede tzag_dk Nybegynder
12. marts 2004 - 11:07 #2
Ok... jeg har kikket lidt på det.
Der står at jeg skal stoppe IIS, men den funktion kan jeg ikke finde, jeg kan kun restart IIS :-(
Avatar billede cesil Nybegynder
12. marts 2004 - 11:28 #3
kig under services, der kan du stoppe og starte.
Avatar billede tzag_dk Nybegynder
12. marts 2004 - 11:32 #4
ok... Det fandt jeg lige ud af :-)
Men hvis filen er for stor kommer scriptet ikke med en fejl meddelse :-(
Avatar billede tzag_dk Nybegynder
12. marts 2004 - 11:47 #5
mht fejl meddelserne så skal den først kontroller om fil typen er rigtig, hvis ikke så lave en bruger defineret fejl. Og hvis det er ok skal den se efter om filen er for stor, hvis den er det skal den lave en bruger defineret fejl. Og hvis det hele er ok, så skal den uploade billedet.

Kan ikke lige selv få det til at virke :-(

// Rene
Avatar billede tzag_dk Nybegynder
16. marts 2004 - 09:29 #6
Jeg skiftede til ASPUpload og ASPJpeg, så nu virker det :-)

// Rene
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