php - 图片上传集成到注册页面

标签 php mysql image upload

<分区>

请给我建议:我想将图片上传整合到我的注册过程中。您是否知道用于此目的的一些插件或脚本(上传、调整大小、放置到 db_table 的链接)?

最佳答案

在下面找到使用 GD 库上传和裁剪图像的 php 代码。

<?php
function createThumb($upfile, $dstfile, $max_width, $max_height){
   $size = getimagesize($upfile);
   $width = $size[0];
   $height = $size[1];
   $x_ratio = $max_width / $width;
   $y_ratio = $max_height / $height;
   if( ($width <= $max_width) && ($height <= $max_height)) {
           $tn_width = $width;
           $tn_height = $height;
   } elseif (($x_ratio * $height) < $max_height) {
           $tn_height = ceil($x_ratio * $height);
           $tn_width = $max_width;
   } else {
           $tn_width = ceil($y_ratio * $width);
           $tn_height = $max_height;
   }
   if($size['mime'] == "image/jpeg"){
           $src = ImageCreateFromJpeg($upfile);
           $dst = ImageCreateTrueColor($tn_width, $tn_height);
           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);
           imageinterlace( $dst, true);
           ImageJpeg($dst, $dstfile, 100);
   } else if ($size['mime'] == "image/png"){
           $src = ImageCreateFrompng($upfile);
           $dst = ImageCreateTrueColor($tn_width, $tn_height);
           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);
           Imagepng($dst, $dstfile);

   } else {

           $src = ImageCreateFromGif($upfile);
           $dst = ImageCreateTrueColor($tn_width, $tn_height);
           imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height);
           imagegif($dst, $dstfile);
   }
}

//usage

if(isset($_FILES['upload_Image']['name']) && $_FILES['upload_Image']['name']!=='') {
    $ext = substr($_FILES['upload_Image']['name'], strpos($_FILES['upload_Image']['name'],'.'), strlen($_FILES['upload_Image']['name'])-1); 

    $imgNormal = time().$ext;
    $normalDestination = "Photos/Orignal/" . $imgNormal;
    $httpRootLarge = "Photos/Large/" . $imgNormal;
    $httpRootSmall = "Photos/Small/" . $imgNormal;
    $httpRootThumb = "Photos/Thumb/" . $imgNormal;
    move_uploaded_file($_FILES['upload_Image']['tmp_name'], $normalDestination);
    createThumb($normalDestination,$httpRootLarge,680,604); #For 604x604 Image 
    createThumb($normalDestination,$httpRootSmall,500,300); #For 500x300 Image
    createThumb($normalDestination,$httpRootThumb,130,100); #For 130x100 Image
}
?>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="upload_Image" id="upload_Image" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>

在你的 mysql 表中保存 $imgNormal 值。

关于php - 图片上传集成到注册页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403319/

相关文章:

php - 绑定(bind)变量的数量与 sql "IN"的 token 数量不匹配

image - JavaFX 2.2 图像支持 .ico?

php - 如何使用 PHP/apache 访问原始 HTTP 请求数据?

php - 使用 php 检查 MySQL 中是否存在某个值

mysql - MySQL 的性能工具

mysql - ORDER BY 然后 GROUP BY 日期时间值

ios - 如何将混合模式效果应用于 UIImage?

django - 将图像写入 Django HttpResponse() 的最佳方法

php - PHP中使用外键的正确方法

php - Laravel 同步多对多错误