tp框架图片上传
如果修改上传图片的话,你应该先查找到当前上传的图片,然后在点击修改后要做一个判断,看删除是否成功,如果删除了以前的图片,最后把现在修改的图片存到自己的文件夹下。
B. Thinkphp上传图片手动剪切功能谁有tp框架
<?php
include'config.php';
classcontroller
{
//ajax上传头像图片
publicfunctionajax_upload_avatar()
{
include('models'.DIRECTORY_SEPARATOR.'uploader.php');
$uploader=newuploader(explode(',',ALLOW_UPLOAD_IMAGE_TYPES),MAX_UPLOAD_SIZE);
$result=$uploader->upload('tmp'.DIRECTORY_SEPARATOR);//先保存到临时文件夹
$reponse=newstdClass();
if(isset($result['success'])&&$result['success'])
{
include('models'.DIRECTORY_SEPARATOR.'gd.php');
$src_path='tmp'.DIRECTORY_SEPARATOR.$uploader->get_real_name();
$gd=newgd();
$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.'像素。';
}
elseif($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);
}
}
}
}
elseif(isset($result['error']))
{
$reponse->success=false;
$reponse->description=$result['error'];
}
header('Content-type:application/json');
echojson_encode($reponse);
}
//ajax裁切头像图片
publicfunctionajax_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=newstdClass();
$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=newgd();
$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');
echojson_encode($reponse);
}
}
$task=isset($_GET['task'])?$_GET['task']:'';
if($task!='')
{
$instance=newcontroller();
$instance->$task();
}
?>
C. 怎么把tp框架里的图放到别的地方
if(top.location!=self.location){
//说明你的页面在if框架中显示
}else{
//说明你的页面不是在if框架中显示
}
top.location//浏览器的地址栏。
self.location//当前页面的url
D. TP3.2.3中的上传图片的配置项在哪里有在文档没看到
看看文档吧,http://document.thinkphp.cn/manual_3_2.html#image,文档里面都已经有教你怎么生成缩略图了
E. 我用tp框架上传图片之后图片不能直接显示,非得手动刷新一下页面才能显示,这是什么原因
当然要刷新页面才能显示啊,除非你用ajax 要不然你就上传完写个跳转回这个页面 让他自动刷新一下就好了。
F. tp框架3.2中前台background-image: url如何显示后台图片地址
如果你后台上传到了 项目/public文件夹下面的img目录下 那么就用
background-image:url('__PUBLIC__/img/xxx.jpg');
G. thinkphp 框架 上传图片 如何自定义图片名称
思路:
一般呢,为了避免图片的重复出现被覆盖的情况,上传的时候图片不会采用自定义名字,如果你需要自定义,可以将信息存储在数据库,这样也会更方便
H. tp框架中文件上传后怎么使文件名不乱吗
给你举个列子,可以同时删除数据库里和服务器文件夹里的图片: $User = M("message"); $a = $User->where('id='.$id)->select(); $url=$_SERVER["DOCUMENT_ROOT"]."/admin/Public/".$a[0]['url']; unlink($url); $User->delete($id);
I. tp3.1.3是否存在图片上传漏洞
'TMPL_FILE_DEPR'=>'_', 是你配置了,这个选项了 ,注释后就能用文件夹了,只能二选一,
ThinkPHP3.1.3版本相对于上一版本更加安全和易用,是一个建议升级的版本。
该版本针对3.1.2进行了一些改进和完善,主要包括:改进异常处理,支持致命错误捕获;针对PDO驱动和Sqlsrv驱动的完善,支持参数绑定;增加变量安全获取和过滤的快捷方法I;分组支持部署到完整域名或IP;
J. tp5文件上传时怎么把图片路径和post数据一起存到数据库(图片使用ajax提交post数据使用form提交)
ajax上传图片成功后返回图片路径
前端再把这个路径存到一个隐藏字段里,form一起提交