0
こんにちは私の写真の雲で私のフィルタ拡張機能に問題があります。ファイルが拡張フィルタを含んでいればうまくいきます。もしasd.phpがうまくいけばいいですが、 image.jpg.php彼はそれをアップロードし、彼が望むことをすることができます...どうすれば修正できますか?ここで私の拡張フィルタの問題php
はコードです:
<?php
//genera directorios random
$dirname = uniqid();
mkdir("uploads/$dirname", 0774);
//crea index.php en nuevos directorios con redireccion
$myfile = fopen("uploads/$dirname/index.php", "w") or die("");
$txt = "<?php
header('Location: /publictools/nube');
?>";
fwrite($myfile, $txt);
$txt = "<?php
header('Location: /publictools/nube');
?>";
fwrite($myfile, $txt);
fclose($myfile);
$folder = "uploads/$dirname/"; //directorio al que subir imagenes
$maxlimit = 9000000; //tamaño maximo
$allowed_ext = "png,jpg,gif"; //extensiones permitidas
$overwrite = "no"; //sobreescritura (yes/no)
$match = "";
$filesize = $_FILES['userfile']['size']; //tamaño de imagen
$filename = strtolower($_FILES['userfile']['name']); //pasa a minusculas
if(!$filename || $filename==""){ //ninguna imagen
$error = "- Ninguna imagen selecccionada.<br>";
}elseif(file_exists($folder.$filename) && $overwrite=="no"){ //imagen existente
$error = "- La imagen <b>$filename</b> ya existe<br>";
}
//comprobar tamaño de imagen
if($filesize < 1){ //imagen vacia
$error .= "- Imagen vacía.<br>";
}elseif($filesize > $maxlimit){ //imagen supera el máximo permitido
$error .= "- Esta imagen supera el tamaño maximo.<br>";
}
$file_ext = preg_split("/\./",$filename);
$allowed_ext = preg_split("/\,/",$allowed_ext);
foreach($allowed_ext as $ext){
if($ext==$file_ext[1]) $match = "1"; //acepta la imagen
}
//extensión no permitida
if(!$match){
$error .= "- Este tipo de archivo no está permitido: $filename<br>";
}
if($error){
print "Se ha producido el siguiente error al subir la imagen:<br> $error"; //errores
}else{
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $folder.$filename)){ //sube la imagen
print "<div align='center'>Encontraras tu imagen <a href='http://*****/uploads/$dirname/$filename'>Aqui</a></div></form>"; //upload correcto
}else{
print "Error!"; //error
}
}
?>
それはあなたが拡張子を持つ非常に同じことを行う行を置き換え、あなたがそれはpreg_splitと以下のforeachループを持っています。それともあなたのコードではありませんか? –