예제 #1
0
 function uploadfile_action() {
     $res=array();
     $uploads=array();
     if (is_array($_FILES)) {
         $upload=new upload();
         $upload->dir='attachment';
         $upload->max_size=config::get('upload_max_filesize')*1024*1024;
         $attachment=new attachment();
         $_file_type=str_replace(',','|',config::get('upload_filetype'));
         $upload->type = explode('|',$_file_type);
         foreach ($_FILES as $name=>$file) {
             $res[$name]['size']=ceil($file['size'] / 1024);
             if ($file['size'] >$upload->max_size) {
                 $res[$name]['code']="alert('附件超过上限(".ceil($upload->max_size / 1024)."K)!');";
                 break;
             }
             if (!front::checkstr(@file_get_contents($file['tmp_name']))) {
                 $res[$name]['code']=lang('上传失败!附件没有通过验证!');
                 break;
             }
             if (!$file['name'] ||!preg_match('/\.('.$_file_type.')$/',$file['name']))
                 continue;
             $uploads[$name]=$upload->run($file);
             if (!$uploads[$name]) {
                 $res[$name]['code']="alert('".'附件保存失败!'.");";
                 break;
             }
             $res[$name]['name']=$uploads[$name];
             $res[$name]['type']=$file['type'];
             $attachment->rec_insert(array('path'=>$uploads[$name],'intro'=>front::post('attachment_intro'),'adddate'=>date('Y-m-d H:i:s')));
             $res[$name]['id']=$attachment->insert_id();
             $rname=preg_replace('%(.*)[\\\\\/](.*)_\d+(\.[a-z]+)$%i','$2$3',$uploads[$name]);
             $res[$name]['code']="
             document.form1.attachment_id.value=data[key].id;
             if(!document.form1.attachment_intro.value) {
             document.form1.attachment_intro.value='$rname';
             }
             document.form1.attachment_path.value=data[key].name;
             get('attachment_path_i').innerHTML=data[key].name;
             get('file_info').innerHTML='附件已保存!大小为:'+data[key].size+'K ';
                     ";
             session::set('attachment_id',$res[$name]['id']);
         }
     }
     echo json::encode($res);
 }