[英]PHP Upload - Allow only jpg files
這是我目前擁有的:
$file_name = $HTTP_POST_FILES['uid']['name'];
$user= 'FILENAME';
$ext = pathinfo($file_name, PATHINFO_EXTENSION);
$new_file_name=$user . '.' . $ext;
$path= "uploads/images/users/".$new_file_name;
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['uid']['tmp_name'], $path))
{
echo "Successful<BR/>";
echo "File Name :".$new_file_name."<BR/>";
echo "File Size :".$HTTP_POST_FILES['uid']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['uid']['type']."<BR/>";
}
else
{
echo "Error";
}
}
<?php
$allowedTypes = array('image/jpeg');
$fileType = $HTTP_POST_FILES['uid']['type'];
if(!in_array($fileType, $allowedTypes)) {
// do whatever you need to say that
// it is an invalid type eg:
die('You may only upload jpeg images');
}
?>
希望這可以幫助。 另外,為什么要使用HTTP_POST_FILES而不是$ _FILES? 您是否正在使用舊版本的PHP?
永遠不要相信這種情況。 這是不安全的,並可能導致人們搞砸您的服務器。 試試這個代替http://ar.php.net/imagecreatefromjpeg
<?php
function LoadJpeg($imgname){
/* Attempt to open */
$im = @imagecreatefromjpeg($imgname);
if(!$im){
throw new InvalidArgumentException("$imgname is not a JPEG image");
}
return $im;
}
?>
像這樣使用它:
$uploadDir = "/path/to/uploads/directory";
$handle = LoadJpeg($_FILES['uid']['tmp_name']);
imagejpeg($handle, $uploadDir.DIRECTORY_SEPARATOR.$_FILES['uid']['name']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.