2017-10-11 23 views
0

10MBのアップロードを許可し、.gif .png .jpgのみ許可する必要があります。 画像をアップロードしたり、新しいディレクトリを作成して画像をアップロードしたりしますが、10 MBの制限があり、確かにこの形式のみが必要です。ファイルサイズについてはどのようにアップロードすることができますか?最大10MBの.gif jpgとpngのみをアップロードすることができます

<?php 

$dirname = uniqid(); 
mkdir("uploads/$dirname", 0777); 

$myfile = fopen("uploads/$dirname/index.php", "w") or die(""); 
$txt = "<?php 
header('Location: /publictools'); 
?>"; 
fwrite($myfile, $txt); 
$txt = "<?php 
header('Location: /publictools'); 
?>"; 
fwrite($myfile, $txt); 
fclose($myfile); 


$target_path = "uploads/$dirname/"; 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) 
{ 
echo "<div align='center'><span style='color:green;'>Listo, Encontraras tu archivo en: http://********/uploads/$dirname/". basename($_FILES['uploadedfile']['name'], $target_path). "</span></div><br>"; 
}else{ 
echo "<div align='center'>Ha ocurrido un error!</div>"; 
} 
?> 

答えて

1

単純にアップロードされたファイルのsizeに対してチェック、:

if ($_FILES["uploadedfile"]["size"] > 10485760) { 
    echo "Sorry, your file is too large."; 
} 

ここではサイズがバイトに指定されているので、10メガバイトは10485760だろう。 (

$target_file = basename($_FILES["uploadedfile"]["name"]); 
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION); 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
} 

以上が明示的にのみPNGGIFJPGことができます:

ファイル形式については

、あなたがアップロードされたファイルのnameに対してチェックした後、pathinfo()PATHINFO_EXTENSIONと拡張子を確認する必要がありまたはJPEG)のファイルを使用できますが、必要に応じて配列を使用して目的のファイルタイプを格納することができます。

希望すると便利です。 :)

+0

それは50/50で動作します。使用する拡張子ではなくファイルをアップロードするというメッセージが表示されますか? – alibeam

+0

はい、これらの条件が満たされていれば**ファイルのアップロードを防止する必要があるためです。私は、アップロードがデフォルトで有効であることを設定するフラグを設定し、次にアップロードが無効であることを示す条件文を設定することをお勧めします。最後に、フラグが有効な場合にのみファイルをアップロードします。 –

関連する問題