Avatar billede majbom Novice
28. august 2005 - 08:25 Der er 15 kommentarer og
1 løsning

filesize i safe mode

hej exps :)

jeg sidder her og er ved at lave en fil-upload-funktion på min hjemmeside, men dumme som b-one er, har de slået safe mode til. så jeg kunne godt tænke mig at vide om der er andre muligheder for at tjekke filstørrelsen, så man ikke bare kan uploade 2gb :S

på forhånd tak
Avatar billede showsource Seniormester
28. august 2005 - 08:28 #1
$size = filesize($FILES["upfile"]["tmp_name"]);
Avatar billede showsource Seniormester
28. august 2005 - 08:29 #2
iøvrigt er default uploadsize sat til 2 Mb i php.ini
Og postsize 8 Mb
Avatar billede showsource Seniormester
28. august 2005 - 08:35 #3
ups sgu
$size = filesize($_FILES["upfile"]["tmp_name"]);
Avatar billede majbom Novice
28. august 2005 - 08:36 #4
problemet er jo at jeg ikke kan bruge "filesize", når serveren kører safe mode
Avatar billede showsource Seniormester
28. august 2005 - 08:39 #5
?
Siden hvornår?
Det er jo blot et spm. om at du bruger korrekt kode?
Avatar billede majbom Novice
28. august 2005 - 08:40 #6
okay...

jeg prøver det der så...
Avatar billede showsource Seniormester
28. august 2005 - 08:43 #7
hmm, du har jo også
$_FILES["upfile"]["size"]
som jo netop er filstr. :O)
Avatar billede majbom Novice
28. august 2005 - 08:44 #8
$uploadFile = $dir . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile)){
  $show_file = substr($uploadFile, 6);
  echo "<b>filen ".$show_file." er valideret og uploadet</b><br><br>";
  echo filesize($_FILES['upfile']['tmp_name']);
}else{
  echo "<div class='error'>filen blev ikke uploadet</div><br><br>";
}

virker ikke, den skriver intet...
Avatar billede showsource Seniormester
28. august 2005 - 08:47 #9
Ahh, du vil vise str. EFTER du har uploadet?
Så brug endelig
$size = $_FILES["upfile"]["size"];

FØR du bruger move_uploaded_file()
Avatar billede showsource Seniormester
28. august 2005 - 08:48 #10
Ja, og så skal "upfile" jo ændres til "userfile"
Avatar billede majbom Novice
28. august 2005 - 08:54 #11
kanon, tak for det!
det skulle vel tilfældigvis ikke være muligt at tjekke størrelsen på de filer der allerede ligger i mappen uden at bruge filesize?
Avatar billede showsource Seniormester
28. august 2005 - 08:56 #12
$uploadFile = $dir . $_FILES['userfile']['name'];
$size = round(($_FILES["userfile"]["size"]/1000));
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile)){
  $show_file = substr($uploadFile, 6);
  echo "<b>filen ".$show_file." er valideret og uploadet</b><br><br>";
  echo "Str. ". $size ." Kb.";
}else{
  echo "<div class='error'>filen blev ikke uploadet</div><br><br>";
}
Avatar billede showsource Seniormester
28. august 2005 - 08:57 #13
njøh, tror jeg ikke, men hvis du blot definerer stien korrekt skulle der ikke være nogen problemer.
Avatar billede showsource Seniormester
28. august 2005 - 09:00 #14
Altså, hvis dir'et hvor filer ligger, er et underdir til scriptet som skal vise str. burde kunne med
$str = filesize("mappe/filnavn");

Men ligger dir'et et helt andet sted, skal du bruge den fulde disksti, kunne f.eks. være
$sti = $_SERVER["DOCUMENT_ROOT"];
$path = "/images/";

$str = filesize($sti . $path ."filnavn");
Avatar billede majbom Novice
28. august 2005 - 09:09 #15
ja, men så er det jo at jeg ikke kan bruge filesize... men skidt med det, bare jeg kan tjekke den inden den bliver uploadet. Tak for hjælpen
Avatar billede showsource Seniormester
28. august 2005 - 09:25 #16
Du får et svar her! :O)
Og et link hvor safe_mode er on, og filstr. findes!
http://www.steffend.dk/filstr.php
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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