1:先去下载他们的demo文件夹http://www.thinkphp.cn/code/222.html
2:我整改了一下他们的规则,添加了一些自己的规则,不然无法实线我要的效果~~~
代码:
$upload = new UploadFile(); // 实例化上传类
$upload->maxSize = 1*1024*1024; //设置上传图片的大小
$upload->allowExts = array('jpg','png','gif'); //设置上传图片的后缀
$upload->uploadReplace = true; //同名则替换
$upload->saveRule = 'uniqid'; //设置上传头像命名规则(临时图片),修改了UploadFile上传类
$upload->thumbRemoveOrigin = true; //生成缩略图后是否删除原图
$upload->autoSub = true; //是否使用子目录保存上传文件
$upload->subType = 'date'; //子目录创建方式,默认为hash,可以设置为hash或者date
$upload->dateFormat = 'Ym'; //子目录方式为date的时候指定日期格式
//完整的头像路径
$path = './avatar/';
$upload->savePath = $path;相信很多人看手册也能知道我修改的内容~~好了不用太多时间来解释这里。因为一个网站不只是会有一个用户,所以我必须把那个上传文件用唯一名来保存,不能按照官方给的那么demo的一个规定的方式去保存,然后保存是用子文件夹的方式去保存的!!
3:这个就需要怎么去获取上传的文件名了,然后官网是用保存的文件名去判断图片的大小的~

这个就要考虑,图片文件名我都采取了用唯一名去保存,而不是官网的那个死的文件名去保存,这个就要去获取上传成功返回的$info里面的东西了~
如图:

返回值里面有个savename,这个就是我们需要的文件名
我们就用$info[0]['savename']去代替

这里的2个固定的文件名了,如图:

这样就把这个用TP里面的ajaxReturn返回到模版去了~~
前端模版,是用form表单提交到cropImg这个方法去,这个方法也需要去获取到上传的

我相信会有很多不同的方法去获取把,我就用我尝试的最简单的方法!
步骤:1:现在这里添加一个hidden隐藏表单

然后给他用jq的val()方法去设置值。(ps:jq方法就不解释了,咱也是小白,会一点点,刚好这里就用上了~~~)
给我隐藏表单设置值的方法如图:

然后就可以在cropImg方法里面去接收到图片了,
官方放出的实例是不可以用I方法去接收的,所以我就用$this->_post('picname')这么去接收到传递过来的值~~
然后在把他分割,因为我只需要文件名部分:
$picName = $this->_post('picName');
$picName = explode('/',$picName);然后我们重写文件目录//头像目录地址
$path = './avatar/'.$picName[3].'/';//第三个是文件的子文件的名称重写要保存的要保存的图片//要保存的图片
$real_path = $path.$picName[4];//第四个是文件名重写要保存的要保存的图片//临时图片地址
$real_path = $real_path;如图:
然后你现在试试上传的结果!!
是不是保存的文件名不对~~不对就对了
要把$picName[4]在进行分割一下
explode('.',$picName[4])//这样返回的就是除后缀名的文件名了,然后就可以直接保存了
现在就会有四个文件

现在最后一步:
用@unli
用法:
@unlink($pic_path);//删除临时文件至此,上传应该大家照着我的做,应该都上传成功了,也许大家有不同的方法都可以实线,编程也是这个思想,每个人都有不同的想法去实现一个效果,要是我说的不好,不合理,不对的地方,欢迎大家批评指出,但是谢绝辱骂~~~谢谢 最佳答案