tP上传图文
逻辑写反了,不应该把$_FILES判断写在实例化上传类外面。
应该先实例化上传类(写完上传配置),在判断$data['case_pic']上传是否成功。
例如:
$upload = new \Think\Upload();
$upload->maxSize = 3145728;
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');
$upload->rootPath = './Public/Uploads/';
$data['case_pic'] = $upload->upload();
if($data['case_pic']){
//上传成功
}else{
//上传失败
}
‘贰’ thinkphp上传多个图片,只能上传一个图片和保存一个数据,什么原因
吧你的表结构 截图看下 不太明白你的第一句
你的那个upload函数不行
thinkphp 自带函数 会遍历所有上传
你每次调用 他都遍历以便 所以你得到的永远是上传最后的一个
随便不明白你的第一句话的意思 但是建议你这样做
先上传所有到一个缓存文件夹里
然后移动文件 再存储最后的地址
‘叁’ 急求: webuploader上传图片用thinkphp自带的文件上传怎么做
use Think\Upload;加载think php自带的上传类
$upload=new Upload($config);实例化 $config 是一些配置 ctrl+鼠标左键点击方法,查看thinkPHP Upload方法
$result=$upload->uploadOne($file);上传 $file 为上传的图片
‘肆’ 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;//这里的时间是根据上传的图片的多少来自动改变图片的名称的(并且时间都不同,所以上传的图片的名称就不会相同)
‘伍’ thinkphp 框架 上传图片 如何自定义图片名称
思路:
一般呢,为了避免图片的重复出现被覆盖的情况,上传的时候图片不会采用自定义名字,如果你需要自定义,可以将信息存储在数据库,这样也会更方便
‘陆’ php的 tp上传图片修改的时候怎么在页面保存原来图片路径并可以file重新选图片
js异步上传图片 原始的上传方法 在修改的时候。太啰嗦了、
在tp里面自定义一个上传文件的方法upload
无论更新还是新增 都直接调用这个接口。
在表单里面加一个text 和上传按钮。
当点击上传按钮 执行异步上传。去找个js插件 网络就有js上传插件 ,你也可以用别的。
这样 js插件上传的图片都会经过upload 方法 里面处理自己需要的逻辑。最后return 返回图片的路径。js插件回调接口修改text的value值。就是文件的地址。修改的时候这个text值就是数据库里面图片的路径。如果重新上传了 就自己改变了这个值。提交就行了。
涉及到的基础 js dom的修改 和异步请求。 不会就去先看看资料吧
‘柒’ php 里面tp框架修改上传图片的逻辑
如果修改上传图片的话,你应该先查找到当前上传的图片,然后在点击修改后要做一个判断,看删除是否成功,如果删除了以前的图片,最后把现在修改的图片存到自己的文件夹下。
‘捌’ 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,然后上传,,
建议使用第二中方法!!
‘玖’ 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效果示意图
第二个输出的数组有你需要的相关数据。
看看是否符合你的需求?若有疑问,欢迎追问!
‘拾’ 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);
}
}
}