[asp]Hoe bestands naam upload controleren?

Pagina: 1
Acties:

  • paragon
  • Registratie: April 2000
  • Laatst online: 10-09 05:50
Ik heb een upload pagina op mijn website, maar daar wil ik alleen .doc bestanden toelaten. Nu wil ik alleen nog weten hoe ik de bestandsnaam controleer.

Ik heb een form met daar in een input met de naam(name) "File1" als ik submit wordt er een pagina aangeroepen en daar staat het volgend:
code:
1
2
3
4
5
6
7
8
9
<%
Dim data
data = Request.Form("File1")
If IsEmpty(data) Then
    Response.Write "Dim data IsEmpty"
Else
    Response.Write data
End If
%>

Aleen is data dus altijd leeg. Terwijl het uploaden wel lukt als ik de pagina waar de code staat aanroep.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

request.form werkt niet als het om file-uploads gaat. Daarvoor heb je een upload-component nodig.
bijv: Infomentum ActiveFile, AspUpload

En elke uploadcomponent biedt mogelijkheden om de filename uit te lezen (zie daarvoor de documentatie/voorbeelden van de component).

Today's subliminal thought is:


Verwijderd

Je kunt toch ook op het form zelf (daar waar je dus ook het file-field heb staan) checken of de gebruiker een .doc document heeft geselecteerd of niet? (met javascript dus)

  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
[/quote]
Ja maar dan kan een kwaadwillende op zijn eigen server het html bestand met de upload box er in na maken, zonder de javascript. het beste is het dus als het en client side, en server side gebeurd.

Clienside:

function check(theForm){
var bestand = theForm.FILE1.value
if ((bestand.indexOf('.doc',0) == -1 && bestand.indexOf('.DOC',0) == -1)||bestand == "" ){
alert("U kunt alleen bestanden met de extentie doc uploaden.")
document.upload.FILE1.select()
return false;
}
return true;
}

Server side v.b.:

Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SetMaxSize 50000, False
If Left(Upload.Files.File[0].name, 4) <> ".doc" Then
Response.Write "upload alleen documenten s.v.p."
Response.End
End If
Upload.Save Server.Mappath("/")

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13-09 12:14

Crazy D

I think we should take a look.

Op woensdag 27 februari 2002 18:02 schreef UniCache2 het volgende:
Ja maar dan kan een kwaadwillende op zijn eigen server het html bestand met de upload box er in na maken, zonder de javascript. het beste is het dus als het en client side, en server side gebeurd.
Dat geldt voor alle checks die je op een form doet, _altijd_ serverside controlleren, en vanwege snelheid (senden, om er daarna achter te komen dat 1 veldje niet klopt...) is het aardig om het ook clientside te valideren.

Exact expert nodig?


  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Op woensdag 27 februari 2002 19:02 schreef Crazy_D het volgende:

[..]

Dat geldt voor alle checks die je op een form doet, _altijd_ serverside controlleren, en vanwege snelheid (senden, om er daarna achter te komen dat 1 veldje niet klopt...) is het aardig om het ook clientside te valideren.
Dat zegt ik :P

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Je moet ook controleren op mimetype en niet op extensie, vrijwel alle goede upload objecten kunnen het mimetype detecteren.

  • paragon
  • Registratie: April 2000
  • Laatst online: 10-09 05:50
Hmm, ja ik probeer nu naar een Directory te uploaden, maar dat lukt niet.

Ik gebruik nu de volgende simpele code:
<%
Dim
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SetMaxSize 50000, False
Upload.Save Server.Mappath("/Data")
%>

Wat resulteert in de volgende foutmelding:
Error Type:
Server object, ASP 0177 (0x800401F3)
Invalid class string
/Beta/UploadBCK/upload.asp, line 3
Pagina: 1