本文目录一览:
- 1、怎么实现php上传图片并可以裁剪的功能,类似一些网站的头像截取,裁剪可以用jcrop插件。高分悬赏
- 2、php怎么上传头像
- 3、thinkphp3.1头像剪切上传怎么把jquery剪切好的图片上传保存到数据库?
- 4、Thinkphp上传图片手动剪切功能谁有?tp框架
- 5、为什么用PHP对上传图片进行裁剪的时候,没成功,而且连上传的原图都没了
- 6、用php怎么做圆形头像
怎么实现php上传图片并可以裁剪的功能,类似一些网站的头像截取,裁剪可以用jcrop插件。高分悬赏
php本身有裁剪图片的函数,js的截取一般是获得几个坐标,供这个函数作为参数,php在图片上传到服务器临时空间的时候,对图片进行裁剪,再按编程人的需求保存到指定目录。
百度下现成的,或者翻翻手册。
php怎么上传头像
php上传头像的功能需要掌握的就是有关文件上传类的php知识,需要知道的图片的格式,图片上传大小的限制,需要用到的函数有is_uploaded_file(文件上传的方式)等等,这里举个例子:
$allowType = array('image/png', 'image/jpeg', 'image/gif');
//做上传图片的验证
//使用try/catch来做判断
try{
if ( !is_uploaded_file($_FILES['thumb']['tmp_name']) ) {
throw new Exception('缩略图上传错误'); //抛出错误
}
if ( !is_uploaded_file($_FILES['img']['tmp_name']) ) {
throw new Exception('大图上传错误'); //抛出错误
}
if ( !in_array($_FILES['thumb']['type'], $allowType) ) {
throw new Exception('缩略图格式错误'); //抛出错误
}
if ( !in_array($_FILES['img']['type'], $allowType) ) {
throw new Exception('大图格式错误'); //抛出错误
}
if ( !($_FILES['thumb']['size'] = 2*1024*1024) ) {
throw new Exception('缩略图大小错误'); //抛出错误
}
if ( !($_FILES['img']['size'] = 2*1024*1024) ) {
throw new Exception('大图大小错误'); //抛出错误
}
$thumb_filename = time().mt_rand().substr($_FILES['thumb']['name'], strrpos($_FILES['thumb']['name'], '.'));
$img_filename = mt_rand().time().substr($_FILES['img']['name'], strrpos($_FILES['img']['name'], '.'));
if ( !move_uploaded_file($_FILES['thumb']['tmp_name'], UPLOAD_PATH.'/goods/'.$thumb_filename) ) {
throw new Exception('缩略图上传失败'); //抛出错误
}
if ( !move_uploaded_file($_FILES['img']['tmp_name'], UPLOAD_PATH.'/goods/'.$img_filename) ) {
throw new Exception('大图上传失败'); //抛出错误
}
} catch ( Exception $e ) {
$message = $e-getMessage();
}
这个函数实现了对图片的类型的判断,大小的判断,还有上传图片的命名。
thinkphp3.1头像剪切上传怎么把jquery剪切好的图片上传保存到数据库?
canvas
转成
base64位,然后得到图片的编码,然后上传到数据库
Thinkphp上传图片手动剪切功能谁有?tp框架
?php
include 'config.php';
class controller
{
// ajax 上传头像图片
public function ajax_upload_avatar()
{
include('models'.DIRECTORY_SEPARATOR.'uploader.php');
$uploader = new uploader( explode(', ', ALLOW_UPLOAD_IMAGE_TYPES), MAX_UPLOAD_SIZE );
$result = $uploader-upload( 'tmp'.DIRECTORY_SEPARATOR ); // 先保存到临时文件夹
$reponse = new stdClass();
if( isset($result['success']) $result['success'] )
{
include('models'.DIRECTORY_SEPARATOR.'gd.php');
$src_path = 'tmp'.DIRECTORY_SEPARATOR.$uploader-get_real_name();
$gd = new gd();
$gd-open( $src_path );
if( $gd-is_image() )
{
if( $gd-get_width() AVATAR_WIDTH )
{
$reponse-success = false; // 传递给 file-uploader 表示服务器端已处理
$reponse-description = '您上传的图片宽度('.$gd-get_width().'像素)过小!最小需要'.AVATAR_WIDTH.'像素。';
}
else if( $gd-get_height() AVATAR_HEIGHT )
{
$reponse-success = false; // 传递给 file-uploader 表示服务器端已处理
$reponse-description = '您上传的图片高度('.$gd-get_height().'像素)过小!最小需要'.AVATAR_HEIGHT.'像素。';
}
else
{
$reponse-success = true;
$reponse-tmp_avatar = $uploader-get_real_name();
if($gd-get_width()AVATAR_MAX_WIDTH || $gd-get_height() AVATAR_MAX_HEIGHT)
{
// 图片过大时按比例缩小,防止超大图片撑破页面
$gd-resize_to(AVATAR_MAX_WIDTH, AVATAR_MAX_HEIGHT, 'scale');
$gd-save_to( $src_path );
}
}
}
}
else if( isset($result['error']) )
{
$reponse-success = false;
$reponse-description = $result['error'];
}
header('Content-type: application/json');
echo json_encode($reponse);
}
// ajax 裁切头像图片
public function ajax_crop()
{
$tmp_avatar = $_POST['tmp_avatar'];
$x1 = $_POST['x1'];
$y1 = $_POST['y1'];
$x2 = $_POST['x2'];
$y2 = $_POST['y2'];
$w = $_POST['w'];
$h = $_POST['h'];
$reponse = new stdClass();
$src_path = 'tmp'.DIRECTORY_SEPARATOR.$tmp_avatar;
if(!file_exists($src_path))
{
$reponse-success = false;
$reponse-description = '未找到图片文件';
}
else
{
include('models'.DIRECTORY_SEPARATOR.'gd.php');
$gd = new gd();
$gd-open( $src_path );
if( $gd-is_image() )
{
$gd-crop($x1, $y1, $w, $h);
$gd-resize_to(AVATAR_WIDTH, AVATAR_HEIGHT, 'scale_fill');
$avatar_name = date('YmdHis').'_'.md5(uniqid()).'.'.$gd-get_type();
$gd-save_to( 'avatars'.DIRECTORY_SEPARATOR.$avatar_name );
setcookie('avatar', $avatar_name, time()+86400*30); // 本示例程序仅在 cookie 中保存
/*
实际应用中会有更多 保存头像代码
......
*/
@unlink($src_path);
$reponse-success = true;
$reponse-avatar = $avatar_name;
$reponse-description = '';
}
else
{
$reponse-success = false;
$reponse-description = '该图片文件不是有效的图片';
}
}
header('Content-type: application/json');
echo json_encode($reponse);
}
}
$task = isset($_GET['task'])?$_GET['task']:'';
if($task!='')
{
$instance = new controller();
$instance-$task();
}
?
为什么用PHP对上传图片进行裁剪的时候,没成功,而且连上传的原图都没了
加个base64_decode方法试试:
$src = imagecreatefromstring(base64_decode(file_get_contents($src_path)));
用php怎么做圆形头像
做法有两种:
第一种:就是用个透明的图片遮挡做头像,显示圆角头像。原理就是在头像上覆盖一张透明的图片,把四个角颜色设置成页面的背景颜色,中间透明。
第二种:在你上传头像的时候程序自动裁剪成圆的,保留原图片和新裁剪的图片就ok了。
希望能帮助到你...