| 
 
//上传处理 
class Ata_Controller_Action_Helper_Upload extends Zend_Controller_Action_Helper_Abstract { 
    //通知csv文件 
    public function MsgCsv(&$source, $succdata, $errdata){ 
        //原cvs保留 
        //文件存放目录 
        $publicPath = realpath(APPLICATION_PATH."/../public/upload").'/'; 
        $csvPath = "msgcsv/".date('Y').'/'.date('m')."/"; 
        $path = $publicPath.$csvPath; 
        //创建目录 
        $this->mkdirs($path); 
        //uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。uniqid() 
        $filename = uniqid(); 
        //获取文件的扩展名 
        $ext = pathinfo($source['name'], PATHINFO_EXTENSION); 
        //创建空文件,目录,文件名,扩展 
        $filepath = $path.$filename.'_org.'.$ext; 
        //move_uploaded_file(),将上传的文件移动到新位置 
        move_uploaded_file($source['tmp_name'], $filepath); 
        //正确csv创建 
        $content = ''; 
        //创建空文件,目录,文件名,扩展 
        $succfile = $path.$filename.'_succ.'.$ext; 
        //把$succdata的内容写入$content; 
        foreach($succdata as $row){ 
            //连接字符串等同$content = $content.$row."n" 
            $content .= $row."n"; 
        } 
        $content = trim($content,"n"); 
        //file_put_contents(),把一个字符串写入文件中 
        file_put_contents($succfile, $content); 
        //错误csv创建 
        $content = ''; 
        $errfile = $path.$filename.'_err.'.$ext; 
        foreach($errdata as $row){ 
            $content .= $row."n"; 
        } 
        $content = trim($content,"n"); 
        file_put_contents($errfile, $content); 
        //返回3个文件(用于查看失败列表与把成功的列表内容写入隐藏域中传递到数据库中) 
        return array( 
            'orginal' => $csvPath.$filename.'_org.'.$ext, 
            'success' => $csvPath.$filename.'_succ.'.$ext, 
            'error' => $csvPath.$filename.'_err.'.$ext 
        ); 
    } 
    //删除文件 
    //获取csv文件的前缀名 
    public function rmMsgCsv($path){ 
        //$prefix获取csv文件的前缀名 
        $prefix = str_replace('_succ.csv','',$path);  
        //删除三个文件       
        unlink($prefix.'_org.csv'); 
        unlink($prefix.'_succ.csv'); 
        unlink($prefix.'_err.csv'); 
    } 
    public function mkdirs($dir, $mode = 0777)  { 
        return is_dir($dir) or ($this->mkdirs(dirname($dir)) and mkdir($dir, $mode)); 
    } 
} 
 |