thinkphp手機上傳圖片
把你的上傳部分寫在function.php或者繼承的父級控制器就行。
如:
/*文件上傳*/
function_uploads($savePath='/Picture/'){
$upload=newThinkUpload();
$upload->maxSize=3*1024*1024;//設置附件上傳大小
$upload->exts=array('jpg','gif','png','jpeg','bmp');//設置附件上傳類型
$upload->autoSub=true;//自動子目錄保存文件
$upload->subName=array('date','Y-m-d');//子目錄創建方式
$upload->saveName=array('uniqid','');//上傳文件命名規則,唯一性
$upload->rootPath='./Uploads/';//設置附件上傳根目錄
$upload->savePath=$savePath;//設置附件上傳(子)目錄
//上傳文件
$info=$upload->upload();
return$info;
}
//此處方法調用
publicfunctionupFile(){
$file=_uploads('/Picture/');//裡面可填寫子目錄文件路徑,支持多文件上傳
if($file){
$img=M('img');
//...此處添加所需邏輯處理
foreach($fileas$v){
//...此處添加所需邏輯處理
//拼接圖片地址用於保存資料庫
$dataImg['url']='/Uploads'.$v['savepath'].$v['savename'];//根據需求拼接路徑,也可在/Uploads前拼成根路徑加上項目名稱
$img->add($dataImg);
}
}
}
2. PHP 圖片上傳生成縮略圖
//2014年3月5日15:08:02因為需要做縮略圖,所以改用thinkphp來做上傳,它支持時間戳命名,方便命名,以及更名
//這是以前網路到的,然後使用的縮略圖代碼,需要cg庫支持
/**
*生成縮略圖
*@[email protected]
*@paramstring源圖絕對完整地址{帶文件名及後綴名}
*@paramstring目標圖絕對完整地址{帶文件名及後綴名}
*@paramint縮略圖寬{0:此時目標高度不能為0,目標寬度為源圖寬*(目標高度/源圖高)}
*@paramint縮略圖高{0:此時目標寬度不能為0,目標高度為源圖高*(目標寬度/源圖寬)}
*@paramint是否裁切{寬,高必須非0}
*@paramint/float縮放{0:不縮放,0<this<1:縮放到相應比例(此時寬高限制和裁切均失效)}
*@returnboolean
*/
functionfileext($file)
{
returnstrtolower(pathinfo($file,PATHINFO_EXTENSION));
}
functionimg2thumb($src_img,$dst_img,$width=75,$height=75,$cut=0,$proportion=0)
{
if(!is_file($src_img))
{
returnfalse;
}
$ot=$this->fileext($dst_img);
$otfunc='image'.($ot=='jpg'?'jpeg':$ot);
$srcinfo=getimagesize($src_img);
$src_w=$srcinfo[0];
$src_h=$srcinfo[1];
$type=strtolower(substr(image_type_to_extension($srcinfo[2]),1));
$createfun='imagecreatefrom'.($type=='jpg'?'jpeg':$type);
$dst_h=$height;
$dst_w=$width;
$x=$y=0;
/**
*縮略圖不超過源圖尺寸(前提是寬或高只有一個)
*/
if(($width>$src_w&&$height>$src_h)||($height>$src_h&&$width==0)||($width>$src_w&&$height==0))
{
$proportion=1;
}
if($width>$src_w)
{
$dst_w=$width=$src_w;
}
if($height>$src_h)
{
$dst_h=$height=$src_h;
}
if(!$width&&!$height&&!$proportion)
{
returnfalse;
}
if(!$proportion)
{
if($cut==0)
{
if($dst_w&&$dst_h)
{
if($dst_w/$src_w>$dst_h/$src_h)
{
$dst_w=$src_w*($dst_h/$src_h);
$x=0-($dst_w-$width)/2;
}
else
{
$dst_h=$src_h*($dst_w/$src_w);
$y=0-($dst_h-$height)/2;
}
}
elseif($dst_wxor$dst_h)
{
if($dst_w&&!$dst_h)//有寬無高
{
$propor=$dst_w/$src_w;
$height=$dst_h=$src_h*$propor;
}
elseif(!$dst_w&&$dst_h)//有高無寬
{
$propor=$dst_h/$src_h;
$width=$dst_w=$src_w*$propor;
}
}
}
else
{
if(!$dst_h)//裁剪時無高
{
$height=$dst_h=$dst_w;
}
if(!$dst_w)//裁剪時無寬
{
$width=$dst_w=$dst_h;
}
$propor=min(max($dst_w/$src_w,$dst_h/$src_h),1);
$dst_w=(int)round($src_w*$propor);
$dst_h=(int)round($src_h*$propor);
$x=($width-$dst_w)/2;
$y=($height-$dst_h)/2;
}
}
else
{
$proportion=min($proportion,1);
$height=$dst_h=$src_h*$proportion;
$width=$dst_w=$src_w*$proportion;
}
$src=$createfun($src_img);
$dst=imagecreatetruecolor($width?$width:$dst_w,$height?$height:$dst_h);
$white=imagecolorallocate($dst,255,255,255);
imagefill($dst,0,0,$white);
if(function_exists('imageresampled'))
{
imageresampled($dst,$src,$x,$y,0,0,$dst_w,$dst_h,$src_w,$src_h);
}
else
{
imageresized($dst,$src,$x,$y,0,0,$dst_w,$dst_h,$src_w,$src_h);
}
$otfunc($dst,$dst_img);
imagedestroy($dst);
imagedestroy($src);
returntrue;
}
3. ThinkPHP6上傳圖片七牛雲 如何上傳文件到七牛雲對象儲存cos
ThinkPHP6 如何上傳圖片七牛雲,如何上傳文件到七牛雲對象儲存cos,總所周知圖片是特別消耗網站帶寬的,個人網站將圖片上傳至七牛雲才能顯著提升網站的響應速度,手把手交大家如何上配置ThinkPHP6上傳文件至七牛雲.
然後我們就可以使用 $url=Qiniu::upload($filePath,$filename); 傳入文件的相對路徑或絕對路徑加上文件名,在文件上傳成功後自動又將圖片上傳至七牛雲~
4. thinkphp上傳圖片如何檢驗尺寸
用getimagesize方法,如下示例:
HTML頁面
<!DOCTYPEhtml>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>定義inputtype="file"的樣式</title>
<styletype="text/css">
body{font-size:14px;}
input{vertical-align:middle;margin:0;padding:0}
.file-box{position:relative;width:340px}
.txt{height:22px;border:1pxsolid#cdcdcd;width:180px;cursor:pointer;}
.btn{background-color:#FFF;border:1pxsolid#CDCDCD;height:24px;width:70px;cursor:pointer;}
.file{position:absolute;top:0;right:80px;height:24px;filter:alpha(opacity:0);opacity:0;width:260px;cursor:pointer;}
</style>
</head>
<body>
<divclass="file-box">
<formaction="test.php"method="post"enctype="multipart/form-data">
<inputtype='text'name='textfield'id='textfield'class='txt'/>
<inputtype='button'class='btn'value='瀏覽...'/>
<inputtype="file"name="fileField"class="file"id="fileField"size="28"onchange="document.getElementById('textfield').value=this.value"/>
<inputtype="submit"name="submit"class="btn"value="上傳"/>
</form>
</div>
</body>
</html>
PHP頁面:
<?php
echo"<pre>";
print_r($_FILES);
echo"<br/>";
$size=getimagesize($_FILES['fileField']['tmp_name']);
echo"<pre>";
print_r($size);
?>
demo效果示意圖
第二個輸出的數組有你需要的相關數據。
看看是否符合你的需求?若有疑問,歡迎追問!
5. Thinkphp 中的 ueditor 上傳圖片的post地址如何修改! 在線等
找到這個ueditor.config.js
修改大約 136 137行 :圖片上傳提交地址和圖片修正地址
,imageUrl:URL+"php/imageUp.php"//圖片上傳提交地址
,imagePath:"/"//圖片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
下一步是找到這個imageUp.php 文件
修改代碼:
//上傳配置
$config=array(
"savePath"=>($path=="1"?"../../../Uploads":"../Uploads"),
"maxSize"=>1000,//單位KB
"allowFiles"=>array(".gif",".png",".jpg",".jpeg",".bmp")
);
其中 「../../../Uploads」 這個是你的這個imageUp.php文件所要返回站點根目錄的層級,「../Uploads」代表 根目錄Uploads文件夾。
我把我怕自己的路徑貼給你看下,你自己適當的修改一下就可以:
我的根目錄是:htdocs 所有文件和文件夾夾都放在這個文件夾下;
修改的第一個文件:htdocsPublicueditorueditor.config.js
修改的第二個文件:htdocsPublicueditorphpimageUp.php
上傳的圖片放置的位置:htdocsUploads
6. ThinkPHP中圖片最多一次上傳20張,怎麼上傳更多圖片
$User->fenxiang_fm = 'Uploads/'.$info[0]["savename"]; // 這里的$info[0]["savename"]的下標[0]表示上傳的第1個圖片按順序,記住是下標
$User->fenxiang_sc = 'Uploads/'.$info[1]["savename"]; // 這里的$info[1]["savename"]的下標[1]表示上傳的第2個圖片按順序,記住是下標
function upload(){
import("ORG.Net.UploadFile");
$upload = new UploadFile();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->saveRule = time;//這里的時間是根據上傳的圖片的多少來自動改變圖片的名稱的(並且時間都不同,所以上傳的圖片的名稱就不會相同)
7. ThinkPHP3.2.3 上傳圖片到ftp,同時生成縮略圖。
ThinkPHP上傳文件類:
$upload = new ThinkUpload($config);// 實例化上傳類
使用這個。
如要處理圖片大小。需要另外調用圖像處理:
裁剪圖片
$image=newThinkImage();
$image->open('./1.jpg');
//將圖片裁剪為400x400並保存為corp.jpg
$image->crop(400,400)->save('./crop.jpg');
居中裁剪
$image=newThinkImage();
$image->open('./1.jpg');
//生成一個居中裁剪為150*150的縮略圖並保存為thumb.jpg
$image->thumb(150,150,ThinkImage::IMAGE_THUMB_CENTER)->save('./thumb.jpg');
8. 【thinkphp】上傳圖片,總是提示「操作失敗!非法圖像文件」是怎麼回事
首先你找到提示「操作失敗!非法圖像文件」部分代碼,分析原因:為什麼會滿足產生這個提示的條件?
因為你沒貼上代碼,所以這里我很難幫你分析什麼原因。不過估計,既然你本地運行正常,而上傳到伺服器就不正常了。很可能是你伺服器環境和本地環境不用,代碼兼容性問題