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

thinkphp5图片上传

发布时间: 2022-05-07 12:10:38

Ⅰ thinkphp如何实现图片上传

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/


关于多图上传:

  1. 在客户端定义一个js变量,用于缓存每次异步上传图片路径;

  2. 最后提交表达数据的时候就把这些路径集合保存到数据库即可!

Ⅲ 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图片上传详细步骤。。。

  1. 先在页面上面配置获取网络配置文件地址:window.UEDITOR_CONFIG.serverUrl = xx;

  2. 后面的就是服务器端了


  3. 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;//这里的时间是根据上传的图片的多少来自动改变图片的名称的(并且时间都不同,所以上传的图片的名称就不会相同)

热点内容
hp存储扩容 发布:2024-11-17 23:29:16 浏览:569
在ftp中put表示什么 发布:2024-11-17 23:29:12 浏览:383
mvc多文件上传 发布:2024-11-17 23:13:56 浏览:155
玩游戏硬盘缓存32m 发布:2024-11-17 23:03:42 浏览:525
蓝光存储系统 发布:2024-11-17 23:03:41 浏览:436
地平线4提示配置低于最低怎么办 发布:2024-11-17 22:54:38 浏览:610
注册银行卡账户密码填什么 发布:2024-11-17 22:54:35 浏览:537
java压缩上传图片 发布:2024-11-17 22:26:59 浏览:627
plc编程课件 发布:2024-11-17 22:18:23 浏览:469
我的世界服务器信号一直在检测 发布:2024-11-17 22:09:52 浏览:547