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一起提交