Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php多图像上传脚本不';不要上传一些图像文件_Php_Image_Upload_Image Uploading - Fatal编程技术网

php多图像上传脚本不';不要上传一些图像文件

php多图像上传脚本不';不要上传一些图像文件,php,image,upload,image-uploading,Php,Image,Upload,Image Uploading,我有一个多图像上传脚本,它调整图像大小并创建缩略图。由于一些奇怪的原因,一些图片并没有通过。在这种情况下,图像大小很小,是JPEG类型的文件。由于某种原因,它没有通过。它与其他图像完美配合。我对单个文件使用相同的脚本,它会上载该图像文件。请帮忙!谢谢 <?php require_once("../includes/connection.php"); ?> <?php require_once("../includes/functions.php"); ?> <?ph

我有一个多图像上传脚本,它调整图像大小并创建缩略图。由于一些奇怪的原因,一些图片并没有通过。在这种情况下,图像大小很小,是JPEG类型的文件。由于某种原因,它没有通过。它与其他图像完美配合。我对单个文件使用相同的脚本,它会上载该图像文件。请帮忙!谢谢

<?php require_once("../includes/connection.php"); ?>
<?php require_once("../includes/functions.php"); ?>
<?php 
$albumName = $_GET['album'];
$albumDate = $_GET['date'];
$albumId = $_GET['id'];
$upload_path = "/home/elevat17/public_html/images/gallery/"; //location
$images = $_FILES['userFile']['name'];
$temps = $_FILES['userFile']['tmp_name'];
$types = $_FILES['userFile']['type'];
$errors = $_FILES["userFile"]["error"];
if ($_FILES["userFile"]["name"]=="") {echo "You must choose a file to upload!";}
if(in_array("", $images)) {die('Select an image to upload.');}


else

{
for ($n=0; isset($images[$n]) && isset($temps[$n]) && isset($types[$n]) && isset($errors[$n]); $n++) {
if ((($types[$n] == "image/gif")

|| ($types[$n] == "image/jpeg")

|| ($types[$n] == "image/pjpeg")

|| ($types[$n] == "image/png")

|| ($types[$n] == "image/jpg")

|| ($types[$n] == "image/x-png")))


{

if ($errors[$n] > 0)

{

$content =  "Return Code: " . $errors[$n] . "<br />";

}

else

{

$content =  "Upload: " . $images[$n] . "<br />";

$content =  "Type: " . $types[$n] . "<br />";

$content =  "<br/><br/>";



if (file_exists($upload_path . $images[$n]))

{

die($images[$n].' already exists. Upload cancelled!');

}

else

{

$uploadedfile = $temps[$n];

$image = $images[$n];

$size = getimagesize($uploadedfile);

$type = $size['mime'];

$width = $size[0];

$height = $size[1];

if($height > '900' || $width > '600')

{ 

$newwidth=600; // NEW WIDTH 

$newheight=($height/$width)*$newwidth;

$tmp=imagecreatetruecolor($newwidth,$newheight);

$filename = $upload_path.$image;



if($size[2] == IMAGETYPE_GIF)

    {

        $src = imagecreatefromgif($uploadedfile);

        imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

        imagegif($tmp,$filename,100);

    }

elseif($size[2] == IMAGETYPE_JPEG)

    {

        $src = imagecreatefromjpeg($uploadedfile);

        imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

        imagejpeg($tmp,$filename,100);

    }

elseif($size[2] == IMAGETYPE_PNG) 

    {

        $src = imagecreatefrompng($uploadedfile);

        imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

        imagepng($tmp,$filename,9);

    }
crop_img(75,75);
move_uploaded_file($uploadedfile, $filename);
imagedestroy($src);

imagedestroy($tmp);

}

else

{      




}
$query = "INSERT INTO photos (photo_name, in_album) VALUES ('{$image}', $albumId)";
            if (mysql_query($query)) {header("location: edit_album.php?id={$albumId}");}




}

}

}

else { $content     =  "Invalid file"; }

}

}

?>
<?php require("../includes/footer.php"); ?>


你不是在检查上传是否成功,而是假设上传成功了。这是一种编写代码的糟糕方式。上传成功的方法有一种,而失败的方法有很多种

您还假设进行上传的人不是恶意的,在上传之前不会简单地将他们的
nastyvirus.exe
重命名为
cutekittens.jpg

至少,你需要

if ($_FILES['userfile']['error'] !== UPLOAD_ERR_OK) {
    die('Upload failed with error code ' . $_FILES['userfile']['error']);
}
为了确保您确实有一些有用的东西可以使用,然后使用类似的方法让服务器确定文件的类型


永远不要相信用户发送给您的内容。

请以更易读的方式组织您的代码!请提供更多关于图像的信息。大小、宽度、高度、文件ending@ChristianLavie谢谢,我认为你的思路是对的,这是因为图像的宽度和高度,因为if语句,代码被弄乱了。修好了。干杯谢谢我修复了这个问题,if语句检查了图像的高度和宽度是个问题。我没有写代码,但我太懒了,太匆忙地重写了:P。非常感谢。干杯