根据EXIF数据上传和旋转图像

时间:2015-07-28 18:08:35

标签: php

目前我正在使用此代码上传图片:

elseif ($_post['password'] == ''){
    if($my_form->checkEmail($_POST['email'])) { // check for good mail

$allowedExts = array("gif", "jpeg", "jpg", "png");

        $extension = end(explode(".", $_FILES["img"]["name"]));

        if ((($_FILES["img"]["type"] == "image/gif")
        || ($_FILES["img"]["type"] == "image/jpeg")
        || ($_FILES["img"]["type"] == "image/jpg")
        || ($_FILES["img"]["type"] == "image/pjpeg")
        || ($_FILES["img"]["type"] == "image/x-png")
        || ($_FILES["img"]["type"] == "image/png"))
        && ($_FILES["img"]["size"] < 3145728)
        && in_array($extension, $allowedExts))
        {
           if ($_FILES["img"]["error"] <= 0)
           {
              move_uploaded_file($_FILES["img"]["tmp_name"], "upload/" . $user->userID.'.'.$extension);
           }
        }

我正在使用此代码显示图像(它抓取最后修改的文件):

 $avatars = glob("upload/$user->userID.*");
 if(!empty($avatars)) {
 $avatars = array_combine($avatars, array_map("filemtime", $avatars));
 arsort($avatars);
 $latest_avatar = key($avatars);

 echo '<img style="width:20%;" src="'.$latest_avatar.'">';
 echo '<p>**Note Image must be smaller than 3MB.</p>';
 echo '<input type="submit" name="submit" value="Submit"></td></tr>';

我已经看过一些代码,并试图使用它,但我无法让它工作......这样的事情:

$avatars = glob("upload/$user->userID.*");
if(!empty($avatars)) {
$avatars = array_combine($avatars, array_map("filemtime", $avatars));
arsort($avatars);
$latest_avatar = key($avatars);

function resample($latest_avatar, $thumbFile, $width, $orientation) {
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($latest_avatar);
$height = (int) (($width / $width_orig) * $height_orig);
// Resample
$image_p = imagecreatetruecolor($width, $height);
$image   = imagecreatefromjpeg($latest_avatar);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Fix Orientation
switch($orientation) {
    case 3:
        $image_p = imagerotate($image_p, 180, 0);
        break;
    case 6:
        $image_p = imagerotate($image_p, -90, 0);
        break;
    case 8:
        $image_p = imagerotate($image_p, 90, 0);
        break;
}
// Output
imagejpeg($image_p, $thumbFile, 90);
}

echo '<img style="width:20%;" src="'.$image_p.'">';
echo '<p>**Note Image must be smaller than 3MB.</p>';
echo '<input type="submit" name="submit" value="Submit"></td></tr>';

它什么都没有,img src只是空白。我没有错误...启用了错误报告。如果我取出该功能并使用echo '<img style="width:20%;" src="'.$latest_avatar.'">';它可以正常工作并显示图像,但当然它不会旋转。

任何人都可以帮我吗?

0 个答案:

没有答案