Error formmail extensie in capitalen
Ik ben bezig met een formmail en alles werkt perfect. Alleen kom ik ergens niet uit.
Wanneer ik iets wil uploaden met de extensie in capitalen (bijv. .PNG) dan werkt het niet. Alleen wanneer ik iets upload met de extensie in kleine letters (zoals .png) dan werkt het wel.
Heeft iemand hier een oplossing voor?
Ik ben vrij nieuw met php...
Dit is de code:
Quote:
function findexts ($filename) {
$filename = strtolower($filename);
$fileArr = split(" ", $filename);
$filename = join("_", $fileArr);
$exts = split("[.]", $filename);
$exts[count($exts) - 2] .= '_' . rand(0, 999);
return join(".", $exts);
}
function checkExtension ($filename) {
$checkType = false;
if ($filename == "") {
$checkType = true;
}
$extensionArray = Array('jpeg', 'jpg', 'gif', 'png', 'pdf', 'eps', 'ai', 'doc', 'docx', 'svg', 'bmp', 'swf', 'tiff', 'xls', 'xlsx');
$exts = split("[.]", $filename);
$fileType = $exts[count($exts) - 1] ;
for ($i = 0; $i < count($extensionArray); $i++) {
if ($fileType == strtolower($extensionArray[$i])) {
$checkType = true;
}
}
return $checkType;
}
$filename = strtolower($filename);
$fileArr = split(" ", $filename);
$filename = join("_", $fileArr);
$exts = split("[.]", $filename);
$exts[count($exts) - 2] .= '_' . rand(0, 999);
return join(".", $exts);
}
function checkExtension ($filename) {
$checkType = false;
if ($filename == "") {
$checkType = true;
}
$extensionArray = Array('jpeg', 'jpg', 'gif', 'png', 'pdf', 'eps', 'ai', 'doc', 'docx', 'svg', 'bmp', 'swf', 'tiff', 'xls', 'xlsx');
$exts = split("[.]", $filename);
$fileType = $exts[count($exts) - 1] ;
for ($i = 0; $i < count($extensionArray); $i++) {
if ($fileType == strtolower($extensionArray[$i])) {
$checkType = true;
}
}
return $checkType;
}
Alvast bedankt voor de hulp!
Cid.
Wat denk je dat die regel in je script doet?
strtolower, betekend dit dat het beperkt wordt tot lowercase?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function findexts ($filename) {
$filename = strtolower($filename);
$fileArr = split(" ", $filename);
$filename = join("_", $fileArr);
$exts = split("[.]", $filename);
$exts[count($exts) - 2] .= '_' . rand(0, 999);
return join(".", $exts);
}
$filename = strtolower($filename);
$fileArr = split(" ", $filename);
$filename = join("_", $fileArr);
$exts = split("[.]", $filename);
$exts[count($exts) - 2] .= '_' . rand(0, 999);
return join(".", $exts);
}
De extentie van een file kan je vinden met de function pathinfo.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
function checkExtension ($filename) {
$checkType = false;
if ($filename == "") {
$checkType = true;
}
$checkType = false;
if ($filename == "") {
$checkType = true;
}
Als je klaar bent met de functie kan je ook gewoon returnen ipv de return value op te slaan
Je strtolowered hier de array en niet de userinput
Je zou je code kunnen herschrijven naar:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
function checkExtension ($filename) {
// Get extension
$file = pathinfo($filename);
$extension = @$file['extension'];
// Decline if file hasnot an extension
if(!$extension)
return false;
// Allowed extensions
$allowed = array('jpeg', 'jpg', 'gif', 'png', 'pdf', 'eps', 'ai', 'doc', 'docx', 'svg', 'bmp', 'swf', 'tiff', 'xls', 'xlsx');
// If extension is in allowed then its oke
// We strtolower extension because my allowed values are also strtolowered
if(in_array(strtolower($extension), $allowed))
return true;
}
?>
function checkExtension ($filename) {
// Get extension
$file = pathinfo($filename);
$extension = @$file['extension'];
// Decline if file hasnot an extension
if(!$extension)
return false;
// Allowed extensions
$allowed = array('jpeg', 'jpg', 'gif', 'png', 'pdf', 'eps', 'ai', 'doc', 'docx', 'svg', 'bmp', 'swf', 'tiff', 'xls', 'xlsx');
// If extension is in allowed then its oke
// We strtolower extension because my allowed values are also strtolowered
if(in_array(strtolower($extension), $allowed))
return true;
}
?>
Gewijzigd op 17/02/2011 11:54:19 door Jelle -
Maar ik bedenk me net dat die functie totaal geen nut heeft want alle extentions staan al als lowercase in je array.
Code van Moozzie werkt perfect!
Mijn dank is groot!