think php文件上传,thinkphp 文件上传 例子

【实例简介】

【实例截图】

052cb97a35fb2b7269b0ac3d9711e438.png

【核心代码】

namespace Admin\Controller;

use Admin\Controller\CommonController;

use Think\Upload;

/**

* 上传相关模块

* @author wangdong

*/

class UploadController extends CommonController {

/**

* 附件上传

*/

public function link(){

if(!IS_POST) return false;

$config = C('FILE_UPLOAD_LINK_CONFIG');

return self::_xhUpload($_FILES, $config, 'link');

}

/**

* 图片上传

*/

public function img(){

if(!IS_POST) return false;

$config = C('FILE_UPLOAD_IMG_CONFIG');

return self::_xhUpload($_FILES, $config, 'img');

}

/**

* 缩略图上传

* TODO 为了兼容不同平台,裁剪功能将在后续开发

*/

public function thumb(){

if(!IS_POST) return false;

$config = C('FILE_UPLOAD_IMG_CONFIG');

return self::_xhUpload($_FILES, $config, 'thumb');

}

/**

* flash上传

*/

public function flash(){

if(!IS_POST) return false;

$config = C('FILE_UPLOAD_FLASH_CONFIG');

return self::_xhUpload($_FILES, $config, 'flash');

}

/**

* media上传

*/

public function media(){

if(!IS_POST) return false;

$config = C('FILE_UPLOAD_MEDIA_CONFIG');

return self::_xhUpload($_FILES, $config, 'media');

}

/**

* xheditor专用上传

* @param string|array $files

* @param array $config 上传配置

* @param string $type 上传文件类型

*/

private function _xhUpload($files, $config = array(), $type = ''){

$msg = null;

$error = null;

//上传配置

$config = array_merge(C('FILE_UPLOAD_CONFIG'), $config);

//HTML5上传

if(isset($_SERVER['HTTP_CONTENT_DISPOSITION'])&&preg_match('/attachment;\s name="(. ?)";\s filename="(. ?)"/i',$_SERVER['HTTP_CONTENT_DISPOSITION'],$info)){

$localName = urldecode($info[2]);

$ext = file_ext($localName);

if(!in_array($ext, $config['exts'])){

$error = '上传文件后缀不允许';

}else{

$filename = UPLOAD_PATH . date('Y/m/d/') . uniqid() . '.' . $ext;

$res = file_write($filename, file_get_contents("php://input"));

if($res){

$msg = array(

'url' => file_path2url($filename),

'localname' => $localName

);

}else{

$error = '上传失败';

}

}

}else{

$upload = new Upload($config);

$res = $upload->upload($files);

if($res){

$localName = $res['filedata']['name'];

$filename = UPLOAD_PATH .$res['filedata']['savepath'].$res['filedata']['savename'];

$msg = array(

'url' => file_path2url($filename),

'localname' => $res['filedata']['name']

);

}else{

$error = $upload->getError();

}

}

//针对xheditor不同上传类型返回不同结果

if($msg){

switch ($type){

case 'link': //附件类型,在URL中直接显示文件名称

$msg['url'] .= '||' . $localName;

break;

}

}

//返回上传结果

$this->ajaxReturn(json_encode(array('err'=>$error, 'msg'=>$msg)), 'eval');

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值