当前位置:首页 » 文件管理 » thinkphp手机上传图片

thinkphp手机上传图片

发布时间: 2024-03-30 14:00:54

1. thinkphp3.2上传图片如何进行封装

把你的上传部分写在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】上传图片,总是提示“操作失败!非法图像文件”是怎么回事

首先你找到提示“操作失败!非法图像文件”部分代码,分析原因:为什么会满足产生这个提示的条件?
因为你没贴上代码,所以这里我很难帮你分析什么原因。不过估计,既然你本地运行正常,而上传到服务器就不正常了。很可能是你服务器环境和本地环境不用,代码兼容性问题

热点内容
存储器国产率 发布:2025-01-19 07:04:36 浏览:566
锐程cc蓝鲸版选什么配置 发布:2025-01-19 06:56:28 浏览:168
城镇居民医保卡的原始密码是多少 发布:2025-01-19 06:55:54 浏览:787
wifi密码如何修改密码 发布:2025-01-19 06:39:06 浏览:961
sqlserver认证 发布:2025-01-19 06:34:30 浏览:815
小米8se安卓p有什么功能 发布:2025-01-19 06:25:22 浏览:358
ucos和linux 发布:2025-01-19 06:24:06 浏览:470
关闭chrome缓存 发布:2025-01-19 05:43:55 浏览:830
修改svn服务器ip地址 发布:2025-01-19 05:32:00 浏览:441
iis服务器搭建出现404错误 发布:2025-01-19 05:26:39 浏览:312