php 上传图片自动生成缩略图
代码如下 | 复制代码 |
<form action="uploads.php" method="post" enctype="multipart/form-data"> uploads.php文件 <?php }
|
代码如下 | 复制代码 |
<?php /* * File: SimpleImage.php * Author: Simon Jarvis * Copyright: 2006 Simon Jarvis * Date: 08/11/06 * Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details: * http://www.gnu.org/licenses/gpl.html * */ class SimpleImage { var $image; var $image_type; function load($filename) { $image_info = getimagesize($filename); $this->image_type = $image_info[2]; if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); } elseif( $this->image_type == IMAGETYPE_GIF ) { $this->image = imagecreatefromgif($filename); } elseif( $this->image_type == IMAGETYPE_PNG ) { $this->image = imagecreatefrompng($filename); } } function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image,$filename,$compression); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image,$filename); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image,$filename); } if( $permissions != null) { chmod($filename,$permissions); } } function output($image_type=IMAGETYPE_JPEG) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image); } } function getWidth() { return imagesx($this->image); } function getHeight() { return imagesy($this->image); } function resizeToHeight($height) { $ratio = $height / $this->getHeight(); $width = $this->getWidth() * $ratio; $this->resize($width,$height); } function resizeToWidth($width) { $ratio = $width / $this->getWidth(); $height = $this->getheight() * $ratio; $this->resize($width,$height); } function scale($scale) { $width = $this->getWidth() * $scale/100; $height = $this->getheight() * $scale/100; $this->resize($width,$height); } function resize($width,$height) { $new_image = imagecreatetruecolor($width, $height); imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $new_image; } } ?> |
Usage
Save the above file as SimpleImage.php and take a look at the following examples of how to use the script.
The first example below will load a file named picture.jpg resize it to 250 pixels wide and 400 pixels high and resave it as picture2.jpg
代码如下 | 复制代码 |
<?php |
If you want to resize to a specifed width but keep the dimensions ratio the same then the script can work out the required height for you, just use the resizeToWidth function
代码如下 | 复制代码 |
<?php |
php教程上传图片后,自动裁剪成缩略图,宽不限高
<?php
// $Id: image.php 1937 2009-01-05 19:09:40Z dualface $
/**
* 定义 Helper_Image 类和 Helper_ImageGD 类
*
* @link http://qeephp.com/
* @copyright Copyright (c) 2006-2009 Qeeyuan Inc. {@link http://www.qeeyuan.com}
* @license New BSD License {@link http://qeephp.com/license/}
* @version $Id: image.php 1937 2009-01-05 19:09:40Z dualface $
* @package helper
*/
/**
* Helper_Image 类封装了针对图像的操作
*
* 开发者不能直接构造该类的实例,而是应该用 Helper_Image::createFromFile()
* 静态方法创建一个 Image 类的实例。
*
* 操作大图片时,请确保 php 能够分配足够的内存。
*
* @author YuLei Liao <liaoyulei@qeeyuan.com>
* @version $Id: image.php 1937 2009-01-05 19:09:40Z dualface $
* @package helper
*/
abstract class Helper_Image
{
/**
* 从指定文件创建 Helper_ImageGD 对象
*
* 用法:
* @code php
* $image = Helper_Image::createFromFile('1.jpg');
* $image->resize($width, $height);
* $image->saveAsJpeg('2.jpg');
* @endcode
*
* 对于上传的文件,由于其临时文件名中并没有包含扩展名。
* 因此需要采用下面的方法创建 Image 对象:
*
* @code php
* $ext = pathinfo($_FILES['postfile']['name'], PATHINFO_EXTENSION);
* $image = Image::createFromFile($_FILES['postfile']['tmp_name'], $ext);
* @endcode
*
* @param string $filename 图像文件的完整路径
* @param string $fileext 指定扩展名
*
* @return Helper_ImageGD 从文件创建的 Helper_ImageGD 对象
* @throw Q_NotImplementedException
*/
static function createFromFile($filename, $fileext)
{
$fileext = trim(strtolower($fileext), '.');
$ext2functions = array(
'jpg' => 'imagecreatefromjpeg',
'jpeg' => 'imagecreatefromjpeg',
'png' => 'imagecreatefrompng',
'gif' => 'imagecreatefromgif'
);
if (!isset($ext2functions[$fileext]))
{
throw new Q_NotImplementedException(__('imagecreateform' . $fileext));
}
$handle = call_user_func($ext2functions[$fileext], $filename);
return new Helper_ImageGD($handle);
}
/**
* 将 16 进制颜色值转换为 rgb 值
*
* 用法:
* @code php
* $color = '#369';
* list($r, $g, $b) = Helper_Image::hex2rgb($color);
* echo "red: {$r}, green: {$g}, blue: {$b}";
* @endcode
*
* @param string $color 颜色值
* @param string $default 使用无效颜色值时返回的默认颜色
*
* @return array 由 RGB 三色组成的数组
*/
static function hex2rgb($color, $default = 'ffffff')
{
$hex = trim($color, '#&Hh');
$len = strlen($hex);
if ($len == 3)
{
$hex = "{$hex[0]}{$hex[0]}{$hex[1]}{$hex[1]}{$hex[2]}{$hex[2]}";
}
elseif ($len < 6)
{
$hex = $default;
}
$dec = hexdec($hex);
return array(($dec >> 16) & 0xff, ($dec >> 8) & 0xff, $dec & 0xff);
}
}
/**
* Helper_ImageGD 类封装了一个 gd 句柄,用于对图像进行操作
*
* @author YuLei Liao <liaoyulei@qeeyuan.com>
* @version $Id: image.php 1937 2009-01-05 19:09:40Z dualface $
* @package helper
*/
class Helper_ImageGD
{
/**
* GD 资源句柄
*
* @var resource
*/
protected $_handle = null;
/**
* 构造函数
*
* @param resource $handle GD 资源句柄
*/
function __construct($handle)
{
$this->_handle = $handle;
}
/**
* 析构函数
*/
function __destruct()
{
$this->destroy();
}
/**
* 快速缩放图像到指定大小(质量较差)
*
* @param int $width 新的宽度
* @param int $height 新的高度
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function resize($width, $height)
{
if (is_null($this->_handle)) return $this;
$dest = imagecreatetruecolor($width, $height);
imagecopyresized($dest, $this->_handle, 0, 0, 0, 0,
$width, $height,
imagesx($this->_handle), imagesy($this->_handle));
imagedestroy($this->_handle);
$this->_handle = $dest;
return $this;
}
/**
* 缩放图像到指定大小(质量较好,速度比 resize() 慢)
*
* @param int $width 新的宽度
* @param int $height 新的高度
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function resampled($width, $height)
{
if (is_null($this->_handle)) return $this;
$dest = imagecreatetruecolor($width, $height);
imagecopyresampled($dest, $this->_handle, 0, 0, 0, 0,
$width, $height,
imagesx($this->_handle), imagesy($this->_handle));
imagedestroy($this->_handle);
$this->_handle = $dest;
return $this;
}
/**
* 调整图像大小,但不进行缩放操作
*
* 用法:
* @code php
* $image->resizeCanvas($width, $height, 'top-left');
* @endcode
*
* $pos 参数指定了调整图像大小时,图像内容按照什么位置对齐。
* $pos 参数的可用值有:
*
* - left: 左对齐
* - right: 右对齐
* - center: 中心对齐
* - top: 顶部对齐
* - bottom: 底部对齐
* - top-left, left-top: 左上角对齐
* - top-right, right-top: 右上角对齐
* - bottom-left, left-bottom: 左下角对齐
* - bottom-right, right-bottom: 右下角对齐
*
* 如果指定了无效的 $pos 参数,则等同于指定 center。
*
* @param int $width 新的高度
* @param int $height 新的宽度
* @param string $pos 调整时图像位置的变化
* @param string $bgcolor 空白部分的默认颜色
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function resizeCanvas($width, $height, $pos = 'center', $bgcolor = '0xffffff')
{
if (is_null($this->_handle)) return $this;
$dest = imagecreatetruecolor($width, $height);
$sx = imagesx($this->_handle);
$sy = imagesy($this->_handle);
// 根据 pos 属性来决定如何定位原始图片
switch (strtolower($pos))
{
case 'left':
$ox = 0;
$oy = ($height - $sy) / 2;
break;
case 'right':
$ox = $width - $sx;
$oy = ($height - $sy) / 2;
break;
case 'top':
$ox = ($width - $sx) / 2;
$oy = 0;
break;
case 'bottom':
$ox = ($width - $sx) / 2;
$oy = $height - $sy;
break;
case 'top-left':
case 'left-top':
$ox = $oy = 0;
break;
case 'top-right':
case 'right-top':
$ox = $width - $sx;
$oy = 0;
break;
case 'bottom-left':
case 'left-bottom':
$ox = 0;
$oy = $height - $sy;
break;
case 'bottom-right':
case 'right-bottom':
$ox = $width - $sx;
$oy = $height - $sy;
break;
default:
$ox = ($width - $sx) / 2;
$oy = ($height - $sy) / 2;
}
list ($r, $g, $b) = Helper_Image::hex2rgb($bgcolor, '0xffffff');
$bgcolor = imagecolorallocate($dest, $r, $g, $b);
imagefilledrectangle($dest, 0, 0, $width, $height, $bgcolor);
imagecolordeallocate($dest, $bgcolor);
imagecopy($dest, $this->_handle, $ox, $oy, 0, 0, $sx, $sy);
imagedestroy($this->_handle);
$this->_handle = $dest;
return $this;
}
/**
* 在保持图像长宽比的情况下将图像裁减到指定大小
*
* crop() 在缩放图像时,可以保持图像的长宽比,从而保证图像不会拉高或压扁。
*
* crop() 默认情况下会按照 $width 和 $height 参数计算出最大缩放比例,
* 保持裁减后的图像能够最大程度的充满图片。
*
* 例如源图的大小是 800 x 600,而指定的 $width 和 $height 是 200 和 100。
* 那么源图会被首先缩小为 200 x 150 尺寸,然后裁减掉多余的 50 像素高度。
*
* 用法:
* @code php
* $image->crop($width, $height);
* @endcode
*
* 如果希望最终生成图片始终包含完整图像内容,那么应该指定 $options 参数。
* 该参数可用值有:
*
* - fullimage: 是否保持完整图像
* - pos: 缩放时的对齐方式
* - bgcolor: 缩放时多余部分的背景色
* - enlarge: 是否允许放大
* - reduce: 是否允许缩小
*
* 其中 $options['pos'] 参数的可用值有:
*
* - left: 左对齐
* - right: 右对齐
* - center: 中心对齐
* - top: 顶部对齐
* - bottom: 底部对齐
* - top-left, left-top: 左上角对齐
* - top-right, right-top: 右上角对齐
* - bottom-left, left-bottom: 左下角对齐
* - bottom-right, right-bottom: 右下角对齐
*
* 如果指定了无效的 $pos 参数,则等同于指定 center。
*
* $options 中的每一个选项都可以单独指定,例如在允许裁减的情况下将图像放到新图片的右下角。
*
* @code php
* $image->crop($width, $height, array('pos' => 'right-bottom'));
* @endcode
*
* @param int $width 新的宽度
* @param int $height 新的高度
* @param array $options 裁减选项
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function crop($width, $height, $options = array())
{
if (is_null($this->_handle)) return $this;
$default_options = array(
'fullimage' => false,
'pos' => 'center',
'bgcolor' => '0xfff',
'enlarge' => false,
'reduce' => true,
);
$options = array_merge($default_options, $options);
// 创建目标图像
$dest = imagecreatetruecolor($width, $height);
// 填充背景色
list ($r, $g, $b) = Helper_Image::hex2rgb($options['bgcolor'], '0xffffff');
$bgcolor = imagecolorallocate($dest, $r, $g, $b);
imagefilledrectangle($dest, 0, 0, $width, $height, $bgcolor);
imagecolordeallocate($dest, $bgcolor);
// 根据源图计算长宽比
$full_w = imagesx($this->_handle);
$full_h = imagesy($this->_handle);
$ratio_w = doubleval($width) / doubleval($full_w);
$ratio_h = doubleval($height) / doubleval($full_h);
if ($options['fullimage'])
{
// 如果要保持完整图像,则选择最小的比率
$ratio = $ratio_w < $ratio_h ? $ratio_w : $ratio_h;
}
else
{
// 否则选择最大的比率
$ratio = $ratio_w > $ratio_h ? $ratio_w : $ratio_h;
}
if (!$options['enlarge'] && $ratio > 1) $ratio = 1;
if (!$options['reduce'] && $ratio < 1) $ratio = 1;
// 计算目标区域的宽高、位置
$dst_w = $full_w * $ratio;
$dst_h = $full_h * $ratio;
// 根据 pos 属性来决定如何定位
switch (strtolower($options['pos']))
{
case 'left':
$dst_x = 0;
$dst_y = ($height - $dst_h) / 2;
break;
case 'right':
$dst_x = $width - $dst_w;
$dst_y = ($height - $dst_h) / 2;
break;
case 'top':
$dst_x = ($width - $dst_w) / 2;
$dst_y = 0;
break;
case 'bottom':
$dst_x = ($width - $dst_w) / 2;
$dst_y = $height - $dst_h;
break;
case 'top-left':
case 'left-top':
$dst_x = $dst_y = 0;
break;
case 'top-right':
case 'right-top':
$dst_x = $width - $dst_w;
$dst_y = 0;
break;
case 'bottom-left':
case 'left-bottom':
$dst_x = 0;
$dst_y = $height - $dst_h;
break;
case 'bottom-right':
case 'right-bottom':
$dst_x = $width - $dst_w;
$dst_y = $height - $dst_h;
break;
case 'center':
default:
$dst_x = ($width - $dst_w) / 2;
$dst_y = ($height - $dst_h) / 2;
}
imagecopyresampled($dest, $this->_handle, $dst_x, $dst_y, 0, 0, $dst_w, $dst_h, $full_w, $full_h);
imagedestroy($this->_handle);
$this->_handle = $dest;
return $this;
}
/**
* 保存为 JPEG 文件
*
* @param string $filename 保存文件名
* @param int $quality 品质参数,默认为 80
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function saveAsJpeg($filename, $quality = 80)
{
imagejpeg($this->_handle, $filename, $quality);
}
/**
* 保存为 PNG 文件
*
* @param string $filename 保存文件名
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function saveAsPng($filename)
{
imagepng($this->_handle, $filename);
}
/**
* 保存为 GIF 文件
*
* @param string $filename 保存文件名
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function saveAsGif($filename)
{
imagegif($this->_handle, $filename);
}
/**
* 销毁内存中的图像
*
* @return Helper_ImageGD 返回 Helper_ImageGD 对象本身,实现连贯接口
*/
function destroy()
{
if (!$this->_handle)
{
@imagedestroy($this->_handle);
}
$this->_handle = null;
return $this;
}
}
调用方法
<?php
$image = Helper_Image::createFromFile('c:a.jpg','jpg');
$image->resampled(100, 100); //缩放到100px * 100PX
$image->saveAsJpeg('c:a_output.jpg', 100);
php教程生成缩略图类,支持自定义高和宽。还支持按高和宽截图
<?php
class resizeimage
{
//图片类型
var $type;
//实际宽度
var $width;
//实际高度
var $height;
//改变后的宽度
var $resize_width;
//改变后的高度
var $resize_height;
//是否裁图
var $cut;
//源图象
var $srcimg;
//目标图象地址
var $dstimg;
//临时创建的图象
var $im;
function resizeimage($img, $wid, $hei,$c,$dstpath)
{
$this->srcimg = $img;
$this->resize_width = $wid;
$this->resize_height = $hei;
$this->cut = $c;
//图片的类型$this->type = strtolower(substr(strrchr($this->srcimg,"."),1));
//初始化图象
$this->initi_img();
//目标图象地址
$this -> dst_img($dstpath);
//--
$this->width = imagesx($this->im);
$this->height = imagesy($this->im);
//生成图象
$this->newimg();
ImageDestroy ($this->im);
}
function newimg()
{
//改变后的图象的比例
$resize_ratio = ($this->resize_width)/($this->resize_height);
//实际图象的比例
$ratio = ($this->width)/($this->height);
if(($this->cut)=="1")
//裁图
{
if($ratio>=$resize_ratio)
//高度优先
{
$newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);
imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height);
ImageJpeg ($newimg,$this->dstimg);
}
if($ratio<$resize_ratio)
//宽度优先
{
$newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);
imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio));
ImageJpeg ($newimg,$this->dstimg);
}
}
else
//不裁图
{
if($ratio>=$resize_ratio)
{
$newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio);
imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height);
ImageJpeg ($newimg,$this->dstimg);
}
if($ratio<$resize_ratio)
{
$newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height);
imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height);
ImageJpeg ($newimg,$this->dstimg);
}
}
}
//初始化图象
function initi_img()
{
if($this->type=="jpg")
{
$this->im = imagecreatefromjpeg($this->srcimg);
}
if($this->type=="gif")
{
$this->im = imagecreatefromgif($this->srcimg);
}
if($this->type=="png")
{
$this->im = imagecreatefrompng($this->srcimg);
}
}
//图象目标地址
function dst_img($dstpath)
{
$full_length = strlen($this->srcimg);
$type_length = strlen($this->type);
$name_length = $full_length-$type_length;$name = substr($this->srcimg,0,$name_length-1);
$this->dstimg = $dstpath;//echo $this->dstimg;
}
}$resizeimage = new resizeimage("11.jpg", "200", "150", "1","17.jpg");
imagecreatetruecolor()创建一个真彩色图像后,
并不会自动把imagecolorallocate()方法注册的第一个颜色作为背景色,而必须用imagefill()去填充
//设置颜色
$bg = imagecolorallocate($im, 240, 240, 0);//设置背景颜色
imagefill($im,0,0,$bg);//载入背景颜色
$te = imagecolorallocate($im, 0, 0, 0);//字符串颜色
//将字符串加到图片上
imagestring($im,rand(3,6),rand(5,60),rand(5,15),$rand,$te);
//输出图片
header("Content-type: image/jpeg");
imagejpeg($im);imagecreatetruecolor()返回一个图像标识符代表指定大小的黑色形象。
根据你的PHP和GD版本中函数定义与否。对于PHP 4.0.6通过4.1.x这个函数总是存在的
更多详细内容请查看:php教程er/24/php-imagecreatetruecolor.htm">http://www.111cn.net/phper/24/php-imagecreatetruecolor.htm
相关文章
- 我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
- if( isset($_FILES['upImg']) ) { if( $userGroup[$loginArr['group']]['upload'] == 0 ) { echo '{"error":"您所在的用户组无权上传图片!"}'; } else...2016-11-25
- 这篇文章主要为大家详细介绍了vue实现上传图片添加水印,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-13
php+jquery Ajax异步上传图片(ajaxSubmit)实例
下面我们一起来看一个php+jquery Ajax异步上传图片(ajaxSubmit)实例,这个我们真正的利用了ajax而不是使用iframe之类的哦。 效果如下 ...2016-11-25- 用PHP给上传图片加水印的程序是通过判定文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring()或是原已经定好的图像程序当中判定水...2016-11-25
- 这篇文章主要介绍了PHP上传图片时判断上传文件是否为可用图片的方法,涉及php针对图片的后缀检测操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2016-11-01
【帝国CMS插件】帝国CMS7.0图集批量上传插件 批量上传图片
帝国CMS的图集上传一直是很蛋疼的事情。 猪先飞网以前发布过一款 图集批量上传插件 ,但可惜只支持6.6版。不支持7.0版。 而帝国CMS7.0版自2013年03月份发布以来,一直没有人放...2015-12-30- 最近小编也在找这样的插件,就是不想写文档了,浪费时间和心情啊,果然我找到一款比较好用,操作简单不复杂.screw 是一个简洁好用的数据库表结构文档的生成工具,支持 MySQL、Oracle、PostgreSQL 等主流的关系数据库.需要的朋友可以参考下...2021-05-13
- /* array getimagesize ( string $filename [, array &$imageinfo ] ) getimagesize()函数将确定任何给定的图像大小的文件,并返回随着文件类型和高度/宽度的文本字符串...2016-11-25
- 这款图片上传源代码是一款可以上传图片并且还具有给上传的图片生成缩略图与增加水印功能哦,可以说是一款完美的图片上传类哦。 代码如下 复制代码 ...2016-11-25
- 这篇文章主要介绍了c#上传图片,并将地址保存到数据库中的简单实例,有需要的朋友可以参考一下...2021-09-22
- 我们知道多值字段功能很强大,但不能上传图片确很操蛋,其实改吧改吧就可以了,只是帝国的大大们似乎不太注意这些小细节,只有靠自己来优化了。<script> function domvadd_ffff() {...2015-12-30
- <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1...2016-11-25
- ckeditor编辑器在上传图片或文件时是没有大小限制的,下面我们来给大家介绍两种ckeditor上传图片文件大小限制问题解决办法。 一种可以通过修改PHP.INI配置文件上传...2016-11-25
- 使用fck的朋友可能会碰这样一个情况就是如果上你的文件名为英文字母是没有任何问题,如果上传的是中文汉字就会出现中文名乱码了,下面我来给大家分析与介绍解决方法。...2016-11-25
php+ajax实现带进度条的上传图片功能【附demo源码下载】
这篇文章主要介绍了php+ajax实现带进度条的上传图片功能,涉及php文件传输及ajax无刷新提交的相关操作技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下...2016-10-02- 文件名乱码一般是中文导致的,因为ckeditor使用的是uft8编码如果我们页面使用的是gbk或gb2312就有可能出现乱码问题,解决办法只要对上传文件重命名即可。 打开editor...2016-11-25
- 这篇文章主要介绍了thinkphp3.2实现上传图片的控制器方法,结合实例形式分析了thinkPHP图片文件上传相关的文件类型判断,文件路径及相关属性操作技巧,需要的朋友可以参考下...2016-05-04
- CKeditor可以配合CKfinder实现文件的上传及管理。但是往往我们上传的图片需要某些自定义的操作,比如将图片路径写入数据库,图片加水印等等操作。 实现原理:配置CKeditor...2016-09-20
- 这篇文章主要介绍了Vue封装上传图片和视频的组件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-07-31