打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
php – 上传JPG但不上传jpg

我有一个代码块,只要扩展名为小写jpg,就可以上传图像并创建缩略图,但如果图像是大写的JPG,则不会上传图像.当我重命名图像时,例如example.JPG到example.jpg,它会上传.但是example.JPG不会上传,我没有错误.这对我没有任何意义.有没有人对此有解释?这是我的代码:

<?phpfunction createThumbnail($filename) {  require 'config.php';  if(preg_match('/[.](jpg)$/', $filename)) {    $im = imagecreatefromjpeg($filename.$path_to_image_directory);  } else if (preg_match('/[.](gif)$/', $filename)) {    $im = imagecreatefromgif($path_to_image_directory . $filename);  } else if (preg_match('/[.](png)$/', $filename)) {    $im = imagecreatefrompng($path_to_image_directory . $filename);  }  $ox = imagesx($im);  $oy = imagesy($im);  $nx = $final_width_of_image;  $ny = $final_height_of_image;  $nm = imagecreatetruecolor($nx, $ny);  imagecopyresampled($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);  if(!file_exists($path_to_thumbs_directory)) {    if(!mkdir($path_to_thumbs_directory)) {       die("There was a problem. Please try again!");    }   }  imagejpeg($nm, $path_to_thumbs_directory . $filename);  $tn = '<img src="' . $path_to_thumbs_directory . $filename . '" alt="image" />';  $tn .= '<br />Congratulations. Your file has been successfully uploaded, and a      thumbnail has been created.';  echo $tn;}?>

配置文件:

<?php  $final_width_of_image = 300;$final_height_of_image = 300;$path_to_image_directory = '';$path_to_thumbs_directory = '-tn';?>     

解决方法:

在此代码块中,您只允许使用小写文件扩展名:

if(preg_match('/[.](jpg)$/', $filename)) {//--lowercase-only--^     $im = imagecreatefromjpeg($filename.$path_to_image_directory);}else if (preg_match('/[.](gif)$/', $filename)) {    $im = imagecreatefromgif($path_to_image_directory . $filename);} else if (preg_match('/[.](png)$/', $filename)) {    $im = imagecreatefrompng($path_to_image_directory . $filename);}

您可以通过在正则表达式中放置一个OR condition来修复:

if(preg_match('/[.](jpg|JPG)$/', $filename)) {// -----uppercase-------^    $im = imagecreatefromjpeg($filename.$path_to_image_directory);}else if (preg_match('/[.](gif|GIF)$/', $filename)) {    $im = imagecreatefromgif($path_to_image_directory . $filename);} else if (preg_match('/[.](png|PNG)$/', $filename)) {    $im = imagecreatefrompng($path_to_image_directory . $filename);}

或者您可以使用i修饰符添加不区分大小写:

if(preg_match('/[.](jpg)$/i', $filename)) {// -------modifier--------^     $im = imagecreatefromjpeg($filename.$path_to_image_directory);}else if (preg_match('/[.](gif)$/i', $filename)) {    $im = imagecreatefromgif($path_to_image_directory . $filename);} else if (preg_match('/[.](png)$/i', $filename)) {    $im = imagecreatefrompng($path_to_image_directory . $filename);}
来源:http://www.icode9.com/content-1-197501.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
图片服务器
PHP+codeigniter实现多文件上传示例
web.py上传图片 and PIL 生成缩略图
python使用opencv进行人脸识别
30 行代码带你用 Python 在命令行查看图片
整合File-Column和Rmagick功能实现图片上传-airport -JavaEy...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服