thinkphp5图片上传
ThinkPHP里也有自带的图片上传类(UploadFile.class.php) 和图片模型类(Image.class.php)。方便于我们去实现图片上传功能。去看看手册吧http://doc.thinkphp.cn/manual/upload.html
Ⅱ thinkphp 多图上传,如何把图片路径保存到数据库
关于上传文件:
推荐使用插件Uploadify!
使用方法:http://www.uploadify.com/documentation/
下载地址:http://www.uploadify.com/download/
关于多图上传:
在客户端定义一个js变量,用于缓存每次异步上传图片路径;
最后提交表达数据的时候就把这些路径集合保存到数据库即可!
Ⅲ 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效果示意图
第二个输出的数组有你需要的相关数据。
看看是否符合你的需求?若有疑问,欢迎追问!
Ⅳ ThinkPHP做照片上传,怎么直接选择图片后就直接上传,而不是选择图片后,再点击上传按钮
这个点击后直接上传 其实只是把点击上传按钮给隐藏了 你需要加个事件
Ⅳ Thinkphp上传多图时怎么规定上传第几个图
感觉这挺简单的,你只判断那要上传的拿张图片的name,如果name不为空就上传
1:publicfunctionuploadOne(){
if(isset($_FILES['第三个图片的name'])){
$upload=newThinkUpload();//实例化上传类
$upload->maxSize=3145728;//设置附件上传大小
$upload->exts=array('jpg','gif','png','jpeg');//设置附件上传类型
$upload->savePath='./Public/Uploads/';//设置附件上传目录
//上传单个文件
$info=$upload->uploadOne($_FILES['photo1']);
if(!$info){//上传错误提示错误信息
$this->error($upload->getError());
}else{//上传成功获取上传文件信息
echo$info['savepath'].$info['savename'];
}
}
}
2:使用foreach循环遍历出你存放name数组中的内容,在循环出的时候你可以添加判断获取第三
张图片的name,然后上传,,
建议使用第二中方法!!
Ⅵ thinkphp5 有自带七牛上传图片的驱动吗 有的话怎么应用 !
七牛的上传其实就很简单
我举例下七牛上传配置
'qiniu'=>[
'maxSize'=>5*1024*1024,//文件大小
'rootPath'=>'./',
'saveName'=>['uniqid',''],
'driver'=>'Qiniu',
'driverConfig'=>[
'secretKey'=>'',
'accessKey'=>'',
'domain'=>'',
'bucket'=>'',
]
]
控制器处理
//实例化上传类
$upload=newUpload(C('qiniu'));
$info=$upload->uploadOne($file);
$this->ajaxReturn($info);
这是上传的处理
其实七牛的驱动里面也是集成了很多
我们可以直接实例化七牛
$qiniu=newQiniuStorage(C('qiniu.driverConfig'));
看好实例化里面的是七牛的配置文件 因为不是直接用的配置
然后就可以调用七牛的方法
$qiniu->SomeFunction();
更多问题可以去php中文网问答社区
Ⅶ 高分求thinkphp中设置xheditor图片上传详细步骤。。。
先在页面上面配置获取网络配置文件地址:window.UEDITOR_CONFIG.serverUrl = xx;
后面的就是服务器端了
namespaceAdminController;
useAdminServiceBaseService;
{
publicfunction_empty(){
$action=I('get.action','','htmlspecialchars');
$callback=I('get.callback');
$result=null;
switch($action){
case'config':
$result=json_encode($this->_Config());
break;
/*上传图片*/
case'uploadimage':
/*上传涂鸦*/
case'uploadscrawl':
/*上传视频*/
case'uploadvideo':
/*上传文件*/
case'uploadfile':
$result=$this->_Upload($action);
break;
/*列出图片*/
case'listimage':
/*列出文件*/
case'listfile':
$result=$this->_list($action);
break;
/*抓取远程文件*/
case'catchimage':
$result=$this->_crawler();
break;
default:
$result=json_encode(array(
'state'=>'请求地址出错'
));
break;
}
if(isset($_GET["callback"])){
if(preg_match("/^[w_]+$/",$_GET["callback"])){
echohtmlspecialchars($_GET["callback"]).'('.$result.')';
}else{
echojson_encode(array(
'state'=>'callback参数不合法'
));
}
}else{
echo$result;
}
}
privatefunction_Config(){
$CONFIG=json_decode(preg_replace("//*[sS]+?*//","",file_get_contents(APP_PATH.'Admin/Conf/config.json')),true);
$CONFIG['imageMaxSize']=UPLOAD_IMAGE_SIZE;
$CONFIG['scrawlMaxSize']=UPLOAD_IMAGE_SIZE;
$CONFIG['catcherMaxSize']=UPLOAD_IMAGE_SIZE;
$CONFIG['videoMaxSize']=UPLOAD_VIDEO_SIZE;
$CONFIG['fileMaxSize']=UPLOAD_FILE_SIZE;
$CONFIG['scrawlUrlPrefix']=ATTACH_URL;
$CONFIG['imageUrlPrefix']=ATTACH_URL;
$CONFIG['snapscreenUrlPrefix']=ATTACH_URL;
$CONFIG['catcherUrlPrefix']=ATTACH_URL;
$CONFIG['videoUrlPrefix']=ATTACH_URL;
$CONFIG['fileUrlPrefix']=ATTACH_URL;
$CONFIG['imageManagerUrlPrefix']=ATTACH_URL;
$CONFIG['fileManagerUrlPrefix']=ATTACH_URL;
return$CONFIG;
}
privatefunction_Upload($action){
$config=$this->_Config();
$up=newLibExtendUpload();
$type='';
switch($action){
case'uploadimage':
$fieldName=$config['imageFieldName'];
$type='image';
break;
case'uploadscrawl':
$fieldName=$config['scrawlFieldName'];
$type='base64';
break;
case'uploadvideo':
$fieldName=$config['videoFieldName'];
$type='video';
break;
case'uploadfile':
default:
$fieldName=$config['fileFieldName'];
$type='file';
break;
}
if($type=='base64'){
$result=$up->saveBase64($fieldName);
}else{
$result=$up->save($fieldName,$type);
}
returnjson_encode($result);
}
privatefunction_list($action){
$config=$this->_Config();
switch($action){
/*列出文件*/
case'listfile':
$allowFiles=$config['fileManagerAllowFiles'];
$listSize=$config['fileManagerListSize'];
break;
/*列出图片*/
case'listimage':
default:
$allowFiles=$config['imageManagerAllowFiles'];
$listSize=$config['imageManagerListSize'];
}
$allowFiles=substr(str_replace(".","|",join("",$allowFiles)),1);
/*获取参数*/
$size=isset($_GET['size'])?htmlspecialchars($_GET['size']):$listSize;
$start=isset($_GET['start'])?htmlspecialchars($_GET['start']):0;
$end=$start+$size;
/*获取文件列表*/
$path=UPLOAD_PATH;
$files=$this->_getfiles($path,$allowFiles);
if(!count($files)){
returnjson_encode(array(
"state"=>"nomatchfile",
"list"=>array(),
"start"=>$start,
"total"=>count($files)
));
}
/*获取指定范围的列表*/
$len=count($files);
for($i=min($end,$len)-1,$list=array();$i<$len&&$i>=0&&$i>=$start;$i--){
$list[]=$files[$i];
}
returnjson_encode(array(
"state"=>"SUCCESS",
"list"=>$list,
"start"=>$start,
"total"=>count($files)
));
}
privatefunction_getfiles($path,$allowFiles,&$files=array()){
if(!is_dir($path))returnnull;
if(substr($path,strlen($path)-1)!='/')$path.='/';
$handle=opendir($path);
while(false!==($file=readdir($handle))){
if($file!='.'&&$file!='..'){
$path2=$path.$file;
if(is_dir($path2)){
$this->_getfiles($path2,$allowFiles,$files);
}else{
if(preg_match("/.(".$allowFiles.")$/i",$file)){
$files[]=array(
'url'=>substr($path2,strlen(UPLOAD_PATH)),
'mtime'=>filemtime($path2)
);
}
}
}
}
return$files;
}
privatefunction_crawler(){
$config=$this->_Config();
$fieldName=$config['catcherFieldName'];
$up=newLibExtendUpload();
$source=I($fieldName);
$result=array();
foreach($sourceas$imgUrl){
$item=$up->saveRemote($imgUrl);
array_push($list,array(
"state"=>$item["state"],
"url"=>$item["url"],
"size"=>$item["size"],
"title"=>htmlspecialchars($item["title"]),
"original"=>htmlspecialchars($item["original"]),
"source"=>htmlspecialchars($imgUrl)
));
}
returnjson_encode($result);
}
}
Ⅷ Thinkphp图片上传中的savename怎么设置
savename是保存文件的命名规则,你要保证每次上传的时候图片命名不同就可以了,比如用时间time()或者用图片hash码等。
Ⅸ 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;//这里的时间是根据上传的图片的多少来自动改变图片的名称的(并且时间都不同,所以上传的图片的名称就不会相同)