本文目录一览:
- 1、PHP略缩图怎么显示出后缀?求助,求助
- 2、PHP网站上传图片自动压缩,怎么编程啊,求指
- 3、php 文件上传
- 4、php通过表单上传两张图片并合成(类似图片加水印效果)
- 5、PHP文件读取
- 6、PHP怎么把图片数据保存为jpg图片到服务器目录
PHP略缩图怎么显示出后缀?求助,求助
把这行代码改了就可以了。
$filePath = $uppath.md5($filename."image"). '.'. strtolower(fileext($_FILES['file']['name']));//转为无图片后缀的名称,并加密
PHP网站上传图片自动压缩,怎么编程啊,求指
这里会使用到三个文件:
connect.php:连接数据库
test_upload.php:执行SQL语句
upload_img.php:上传图片并压缩
三个文件代码如下:
连接数据库:connect.php
?php
$db_host = '';
$db_user = '';
$db_psw = '';
$db_name = '';
$db_port = '';
$sqlconn=new mysqli($db_host,$db_user,$db_psw,$db_name);
$q="set names utf8;";
$result=$sqlconn-query($q);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
?
当然使用一些封装的数据库类也是可以的。
执行SQL语句:test_upload.php
?php
require ("connect.php");
require ("upload_img.php");
$real_img=$uploadfile;
$small_img=$uploadfile_resize;
$insert_sql = "insert into img (real_img,small_img) values (?,?)";
$result = $sqlconn - prepare($insert_sql);
$result - bind_param("ss", $real_img,$small_img);
$result - execute();
?
上传图片并压缩:upload_img.php
?php
//设置文件保存目录
$uploaddir = "upfiles/";
//设置允许上传文件的类型
$type=array("jpg","gif","bmp","jpeg","png");
//获取文件后缀名函数
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
//生成随机文件名函数
function random($length)
{
$hash = 'CR-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
$a=strtolower(fileext($_FILES['filename']['name']));
//判断文件类型
if(!in_array(strtolower(fileext($_FILES['filename']['name'])),$type))
{
$text=implode(",",$type);
$ret_code=3;//文件类型错误
$page_result=$text;
$retArray = array('ret_code' = $ret_code,'page_result'=$page_result);
$retJson = json_encode($retArray);
echo $retJson;
return;
}
//生成目标文件的文件名
else
{
$filename=explode(".",$_FILES['filename']['name']);
do
{
$filename[0]=random(10); //设置随机数长度
$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
if (move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_FILES['filename']['tmp_name']))
{
$ret_code=1;//上传失败
}
else
{//上传成功
$ret_code=0;
}
}
$retArray = array('ret_code' = $ret_code);
$retJson = json_encode($retArray);
echo $retJson;
}
//压缩图片
$uploaddir_resize="upfiles_resize/";
$uploadfile_resize=$uploaddir_resize.$name;
//$pic_width_max=120;
//$pic_height_max=90;
//以上与下面段注释可以联合使用,可以使图片根据计算出来的比例压缩
$file_type=$_FILES["filename"]['type'];
function ResizeImage($uploadfile,$maxwidth,$maxheight,$name)
{
//取得当前图片大小
$width = imagesx($uploadfile);
$height = imagesy($uploadfile);
$i=0.5;
//生成缩略图的大小
if(($width $maxwidth) || ($height $maxheight))
{
/*
$widthratio = $maxwidth/$width;
$heightratio = $maxheight/$height;
if($widthratio $heightratio)
{
$ratio = $widthratio;
}
else
{
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
*/
$newwidth = $width * $i;
$newheight = $height * $i;
if(function_exists("imagecopyresampled"))
{
$uploaddir_resize = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);-phpfileext
}
else
{
$uploaddir_resize = imagecreate($newwidth, $newheight);
imagecopyresized($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);-phpfileext
}
ImageJpeg ($uploaddir_resize,$name);
ImageDestroy ($uploaddir_resize);
}
else
{
ImageJpeg ($uploadfile,$name);
}
}
if($_FILES["filename"]['size'])
{
if($file_type == "image/pjpeg"||$file_type == "image/jpg"|$file_type == "image/jpeg")
{
//$im = imagecreatefromjpeg($_FILES[$upload_input_name]['tmp_name']);
$im = imagecreatefromjpeg($uploadfile);
}
elseif($file_type == "image/x-png")
{
//$im = imagecreatefrompng($_FILES[$upload_input_name]['tmp_name']);
$im = imagecreatefromjpeg($uploadfile);
}
elseif($file_type == "image/gif")
{
//$im = imagecreatefromgif($_FILES[$upload_input_name]['tmp_name']);
$im = imagecreatefromjpeg($uploadfile);
}
else//默认jpg
{
$im = imagecreatefromjpeg($uploadfile);
}
if($im)
{
ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize);
ImageDestroy ($im);
}
}
?
请按照现实情况更改connect.php,test_upload.php中对应的信息。
望采纳,谢谢。
php 文件上传
?php
//$uploaddir = "D:My Documents/phpnow/htdocs/mysite/_notes/upload/";原代码,路径少了个斜杠,按道理是错误的.
$uploaddir = "D:/My Documents/phpnow/htdocs/mysite/_notes/upload/";//设置文件保存目录 注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型
// 下面这句,程序中都没有用到,估计是用来做预览图片的浏览路径的.
//因为,如果是在服务器上面,使用$uploaddir这种本地路径(相对于http://这种网络路径)的地址来
//访问是访问不到的,所以应该改成这样如下,相应的图片的预览路径也有一点改动
$patch="";//程序所在路径
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}//获取文件后缀名函数
function random($length)
{
$hash = 'CR-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
$a=strtolower(fileext(@$_FILES['file']['name']));//生成随机文件名函数
if(!in_array(strtolower(fileext(@$_FILES['file']['name'])),$type))
{
$text=implode(",",$type);
echo "您只能上传以下类型文件: ",$text,"br";
}//判断文件类型
else
{
$filename=explode(".",$_FILES['file']['name']);
do
{
$filename[0]=random(6); //设置随机数长度
$name=implode(".",$filename); //$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
//原代码是先移动文件(已经移动,原文件不存在了),后判断是否是通过上传的文件(当然了,文件都没了,怎么还会是true呢.),
if(is_uploaded_file(@$_FILES['file']['tmp_name'])move_uploaded_file(@$_FILES['file']['tmp_name'],$uploadfile)){-phpfileext
//输出图片预览,注意img标签的src,有改动
echo "center您的文件已经上传完毕 上传图片预览: /centerbrcenterimg src='{$patch}{$name}'/center";
echo"brcentera href='javascript:history.go(-1)'继续上传/a/center";
}else{
echo "上传失败!";
}
}
?
php通过表单上传两张图片并合成(类似图片加水印效果)
你好只能帮到你这里的
支持水印,日期,缩略图的php多文件上传类
?php
//视图表单
//支持多张图片上传
class upload {
var $dir; //附件存放物理目录
var $time; //自定义文件上传时间
var $allow_types; //允许上传附件类型
var $field; //上传控件名称
var $maxsize; //最大允许文件大小,单位为KB
var $thumb_width; //缩略图宽度
var $thumb_height; //缩略图高度
var $watermark_file; //水印图片地址
var $watermark_pos; //水印位置
var $watermark_trans;//水印透明度
//构造函数
//$types : 允许上传的文件类型 , $maxsize : 允许大小 , $field : 上传控件名称 , $time : 自定义上传时间
function upload($types = 'jpg|png', $maxsize = 1024, $field = 'attach', $time = '') {
$this-allow_types = explode('|',$types);
$this-maxsize = $maxsize * 1024;
$this-field = $field;
$this-time = $time ? $time : time();
}
//设置并创建文件具体存放的目录
//$basedir : 基目录,必须为物理路径
//$filedir : 自定义子目录,可用参数{y}、{m}、{d}
function set_dir($basedir,$filedir = '') {
$dir = $basedir;
!is_dir($dir) @mkdir($dir,0777);
if (!empty($filedir)) {
$filedir = str_replace(array('{y}','{m}','{d}'),array(date('Y',$this-time),date('m',$this-time),date('d',$this-time)),strtolower($filedir));//用string_replace把{y} {m} {d}几个标签进行替换-phpfileext
$dirs = explode('/',$filedir);
foreach ($dirs as $d) {
!empty($d) $dir .= $d.'/';
!is_dir($dir) @mkdir($dir,0777);
}
}
$this-dir = $dir;
}
//图片缩略图设置,如果不生成缩略图则不用设置
//$width : 缩略图宽度 , $height : 缩略图高度
function set_thumb ($width = 0, $height = 0) {
$this-thumb_width = $width;
$this-thumb_height = $height;
}
//图片水印设置,如果不生成添加水印则不用设置
//$file : 水印图片 , $pos : 水印位置 , $trans : 水印透明度
function set_watermark ($file, $pos = 6, $trans = 80) {
$this-watermark_file = $file;
$this-watermark_pos = $pos;
$this-watermark_trans = $trans;
}
/*—————————————————————-
执行文件上传,处理完返回一个包含上传成功或失败的文件信息数组,
其中:name 为文件名,上传成功时是上传到服务器上的文件名,上传失败则是本地的文件名
dir 为服务器上存放该附件的物理路径,上传失败不存在该值
size 为附件大小,上传失败不存在该值
flag 为状态标识,1表示成功,-1表示文件类型不允许,-2表示文件大小超出
—————————————————————–*/
function execute() {
$files = array(); //成功上传的文件信息
$field = $this-field;
$keys = array_keys($_FILES[$field]['name']);
foreach ($keys as $key) {
if (!$_FILES[$field]['name'][$key]) continue;
$fileext = $this-fileext($_FILES[$field]['name'][$key]); //获取文件扩展名
$filename = date('Ymdhis',$this-time).mt_rand(10,99).'.'.$fileext; //生成文件名
$filedir = $this-dir; //附件实际存放目录
$filesize = $_FILES[$field]['size'][$key]; //文件大小
//文件类型不允许
if (!in_array($fileext,$this-allow_types)) {
$files[$key]['name'] = $_FILES[$field]['name'][$key];
$files[$key]['flag'] = -1;
continue;
}
//文件大小超出
if ($filesize $this-maxsize) {
$files[$key]['name'] = $_FILES[$field]['name'][$key];
$files[$key]['name'] = $filesize;
$files[$key]['flag'] = -2;
continue;
}
$files[$key]['name'] = $filename;
$files[$key]['dir'] = $filedir;
$files[$key]['size'] = $filesize;
//保存上传文件并删除临时文件
if (is_uploaded_file($_FILES[$field]['tmp_name'][$key])) {
move_uploaded_file($_FILES[$field]['tmp_name'][$key],$filedir.$filename);
@unlink($_FILES[$field]['tmp_name'][$key]);
$files[$key]['flag'] = 1;
//对图片进行加水印和生成缩略图,这里演示只支持jpg和png(gif生成的话会没了帧的)
if (in_array($fileext,array('jpg','png'))) {
if ($this-thumb_width) {
if ($this-create_thumb($filedir.$filename,$filedir.'thumb_'.$filename)) {
$files[$key]['thumb'] = 'thumb_'.$filename; //缩略图文件名
}
}
$this-create_watermark($filedir.$filename);
}
}
}
return $files;
}
//创建缩略图,以相同的扩展名生成缩略图
//$src_file : 来源图像路径 , $thumb_file : 缩略图路径
function create_thumb ($src_file,$thumb_file) {
$t_width = $this-thumb_width;
$t_height = $this-thumb_height;
if (!file_exists($src_file)) return false;
$src_info = getImageSize($src_file);
//如果来源图像小于或等于缩略图则拷贝源图像作为缩略图,免去操作
if ($src_info[0] = $t_width $src_info[1] = $t_height) {
if (!copy($src_file,$thumb_file)) {
return false;
}
return true;
}
//按比例计算缩略图大小
if (($src_info[0]-$t_width) ($src_info[1]-$t_height)) {
$t_height = ($t_width / $src_info[0]) * $src_info[1];
} else {
$t_width = ($t_height / $src_info[1]) * $src_info[0];
}
//取得文件扩展名
$fileext = $this-fileext($src_file);
switch ($fileext) {
case 'jpg' :
$src_img = ImageCreateFromJPEG($src_file); break;
case 'png' :
$src_img = ImageCreateFromPNG($src_file); break;
case 'gif' :
$src_img = ImageCreateFromGIF($src_file); break;
}
//创建一个真彩色的缩略图像
$thumb_img = @ImageCreateTrueColor($t_width,$t_height);
//ImageCopyResampled函数拷贝的图像平滑度较好,优先考虑
if (function_exists('imagecopyresampled')) {
@ImageCopyResampled($thumb_img,$src_img,0,0,0,0,$t_width,$t_height,$src_info[0],$src_info[1]);
} else {
@ImageCopyResized($thumb_img,$src_img,0,0,0,0,$t_width,$t_height,$src_info[0],$src_info[1]);
}
//生成缩略图
switch ($fileext) {
case 'jpg' :
ImageJPEG($thumb_img,$thumb_file); break;
case 'gif' :
ImageGIF($thumb_img,$thumb_file); break;
case 'png' :
ImagePNG($thumb_img,$thumb_file); break;
}
//销毁临时图像
@ImageDestroy($src_img);
@ImageDestroy($thumb_img);
return true;
}
//为图片添加水印
//$file : 要添加水印的文件
function create_watermark ($file) {
//文件不存在则返回
if (!file_exists($this-watermark_file) || !file_exists($file)) return;
if (!function_exists('getImageSize')) return;
//检查GD支持的文件类型
$gd_allow_types = array();
if (function_exists('ImageCreateFromGIF')) $gd_allow_types['image/gif'] = 'ImageCreateFromGIF';
if (function_exists('ImageCreateFromPNG')) $gd_allow_types['image/png'] = 'ImageCreateFromPNG';
if (function_exists('ImageCreateFromJPEG')) $gd_allow_types['image/jpeg'] = 'ImageCreateFromJPEG';
//获取文件信息
$fileinfo = getImageSize($file);
$wminfo = getImageSize($this-watermark_file);
if ($fileinfo[0] $wminfo[0] || $fileinfo[1] $wminfo[1]) return;
if (array_key_exists($fileinfo['mime'],$gd_allow_types)) {
if (array_key_exists($wminfo['mime'],$gd_allow_types)) {
//从文件创建图像
$temp = $gd_allow_types[$fileinfo['mime']]($file);
$temp_wm = $gd_allow_types[$wminfo['mime']]($this-watermark_file);
//水印位置
switch ($this-watermark_pos) {
case 1 : //顶部居左
$dst_x = 0; $dst_y = 0; break;
case 2 : //顶部居中
$dst_x = ($fileinfo[0] - $wminfo[0])/2; $dst_y = 0; break;
case 3 : //顶部居右
$dst_x = $fileinfo[0]; $dst_y = 0; break;
case 4 : //底部居左
$dst_x = 0; $dst_y = $fileinfo[1]; break;
case 5 : //底部居中
$dst_x = ($fileinfo[0] - $wminfo[0]) / 2; $dst_y = $fileinfo[1]; break;
case 6 : //底部居右
$dst_x = $fileinfo[0]-$wminfo[0]; $dst_y = $fileinfo[1]-$wminfo[1]; break;
default : //随机
$dst_x = mt_rand(0,$fileinfo[0]-$wminfo[0]); $dst_y = mt_rand(0,$fileinfo[1]-$wminfo[1]);
}
if (function_exists('ImageAlphaBlending')) ImageAlphaBlending($temp_wm,True); //设定图像的混色模式
if (function_exists('ImageSaveAlpha')) ImageSaveAlpha($temp_wm,True); //保存完整的 alpha 通道信息
//为图像添加水印
if (function_exists('imageCopyMerge')) {
ImageCopyMerge($temp,$temp_wm,$dst_x,$dst_y,0,0,$wminfo[0],$wminfo[1],$this-watermark_trans);
} else {
ImageCopyMerge($temp,$temp_wm,$dst_x,$dst_y,0,0,$wminfo[0],$wminfo[1]);
}
//保存图片
switch ($fileinfo['mime']) {
case 'image/jpeg' :
@imageJPEG($temp,$file);
break;
case 'image/png' :
@imagePNG($temp,$file);
break;
case 'image/gif' :
@imageGIF($temp,$file);
break;
}
//销毁零时图像
@imageDestroy($temp);
@imageDestroy($temp_wm);
}
}
}
//获取文件扩展名
function fileext($filename) {
return strtolower(substr(strrchr($filename,'.'),1,10));
}
}
?
PHP文件读取
$filename里存放的是你读取出来的文件名(包括扩展名)
$fileext= substr(strrchr($filename, '.'),1);
$fileext里面存放的就是文件的扩展名
不知道能不能解决你的问题,你试一下
PHP怎么把图片数据保存为jpg图片到服务器目录
第一步:通过$_FILES获取文件信息。
第二步:指定新文件名称以及路径,并赋值给一个变量。
第三步:通过move_uploaded_file上传文件。
第四步:上传成功后,将数值存入数据库服务器目录即可。
代码如下
1.conn.php
?
$host="localhost"; //数据库服务器名称
$user="root"; //用户名
$pwd="1721"; //密码
$conn=mysql_connect($host,$user,$pwd);
mysql_query("SET
character_set_connection=gb2312,
character_set_results=gb2312,
character_set_client=binary",$conn);
if ($conn==FALSE)
{
echo "center服务器连接失败!br请刷新后重试。/center";
return true;
}
$databasename="database";//数据库名称
do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);
if ($con==FALSE)
{
echo "center打开数据库失败!br请刷新后重试。/center";
return true;
}
?
2.upload.php
?php
if ($_GET['action'] == "save"){
include_once('conn.php');
include_once('uploadclass.php');
$title=$_POST['title'];
$pic=$uploadfile;
if($title == "")
echo"Scriptwindow.alert('对不起!你输入的信息不完整!');history.back()/Script";
$sql="insert into upload(title,pic) values('$title','$pic')";
$result=mysql_query($sql,$conn);
//echo"Scriptwindow.alert('信息添加成功');location.href='upload.php'/Script";
}
?
html
head
title文件上传实例/title
/head
body
form method="post" action="?action=save" enctype="multipart/form-data"
table border=0 cellspacing=0 cellpadding=0 align=center width="100%"
tr
td width=55 height=20 align="center" /TD
td height="16"
table width="48%" height="93" border="0" cellpadding="0" cellspacing="0"
tr
td标题:/td
tdinput name="title" type="text" id="title"/td
/tr
tr
td文件: /td
tdlabel
input name="file" type="file" value="浏览"
input type="hidden" name="MAX_FILE_SIZE" value="2000000"
/label/td
/tr
tr
td /td
tdinput type="submit" value="上 传" name="upload"/td
/tr
/table/td
/tr
/table
/form
/body
/html
3.uploadclass.php
?php
$uploaddir = "upfiles/";//设置文件保存目录 注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型
$patch="upload/";//程序所在路径
//获取文件后缀名函数
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
//生成随机文件名函数
function random($length)
{
$hash = 'CR-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
$a=strtolower(fileext($_FILES['file']['name']));
//判断文件类型
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type))
{
$text=implode(",",$type);
echo "您只能上传以下类型文件: ",$text,"br";
}
//生成目标文件的文件名
else{
$filename=explode(".",$_FILES['file']['name']);
do
{
$filename[0]=random(10); //设置随机数长度
$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
echo "上传失败!";
}
else
{//输出图片预览
echo "center您的文件已经上传完毕 上传图片预览: /centerbrcenterimg src='$uploadfile'/center";
echo "brcentera href='upload.htm'继续上传/a/center";
}
}
}
?