source: pmb4.2/trunk/fuentes/pmb/doc_num_data.php @ 819

Last change on this file since 819 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 3.4 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// | creator : Yves PRATTER                                                   |
5// +-------------------------------------------------+
6// $Id: doc_num_data.php,v 1.15 2015-05-06 13:28:43 dgoron Exp $
7
8// définition du minimum nécéssaire
9$base_path     = ".";                           
10$base_auth     = ""; //"CIRCULATION_AUTH"; 
11$base_title    = "";   
12$base_noheader = 1;
13//$base_nocheck  = 1;
14$base_nobody   = 1;
15$base_nosession   = 1;
16
17
18require_once ("$base_path/includes/init.inc.php"); 
19require_once ($class_path."/upload_folder.class.php"); 
20
21//gestion des droits
22require_once($class_path."/acces.class.php");
23
24$resultat = pmb_mysql_query("SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_data, length(explnum_data) as taille,explnum_path, concat(repertoire_path,explnum_path,explnum_nomfichier) as path, repertoire_id, explnum_nomfichier, explnum_extfichier FROM explnum left join upload_repertoire on repertoire_id=explnum_repertoire WHERE explnum_id = '$explnum_id' ", $dbh);
25$nb_res = pmb_mysql_num_rows($resultat) ;
26
27if (!$nb_res) {
28        exit ;
29        } 
30       
31$ligne = pmb_mysql_fetch_object($resultat);
32
33$id_for_rigths = $ligne->explnum_notice;
34if($ligne->explnum_bulletin != 0){
35        //si bulletin, les droits sont rattachés à la notice du bulletin, à défaut du pério...
36        $req = "select bulletin_notice,num_notice from bulletins where bulletin_id =".$ligne->explnum_bulletin;
37        $res = pmb_mysql_query($req);
38        if(pmb_mysql_num_rows($res)){
39                $row = pmb_mysql_fetch_object($res);
40                $id_for_rigths = $row->num_notice;
41                if(!$id_for_rigths){
42                        $id_for_rigths = $row->bulletin_notice;
43                }
44        }
45}
46
47//droits d'acces utilisateur/notice
48if ($gestion_acces_active==1 && $gestion_acces_user_notice==1) {
49        require_once("$class_path/acces.class.php");
50        $ac= new acces();
51        $dom_1= $ac->setDomain(1);
52        $rights = $dom_1->getRights($PMBuserid,$id_for_rigths);
53}
54
55if( $rights & 4 || (is_null($dom_1))){
56        if (($ligne->explnum_data)||($ligne->explnum_path)) {
57                if ($ligne->explnum_path) {
58                        $up = new upload_folder($ligne->repertoire_id);
59                        $path = str_replace("//","/",$ligne->path);
60                        $path=$up->encoder_chaine($path);
61                        $fo = fopen($path,'rb');
62                        $ligne->explnum_data=fread($fo,filesize($path));
63                        $ligne->taille=filesize($path);
64                        fclose($fo);
65                }
66               
67                $nomfichier="";
68                if ($ligne->explnum_nomfichier) {
69                        $nomfichier=$ligne->explnum_nomfichier;
70                }elseif($ligne->explnum_extfichier){
71                        if($ligne->explnum_nom){
72                                $nomfichier=$ligne->explnum_nom;
73                                if(!preg_match("/\.".$ligne->explnum_extfichier."$/",$nomfichier)){
74                                        $nomfichier.=".".$ligne->explnum_extfichier;
75                                }
76                        }else{
77                                $nomfichier="pmb".$ligne->explnum_id.".".$ligne->explnum_extfichier;
78                        }
79                }
80                if ($force_download == 1) {
81                        if($nomfichier) header("Content-disposition: attachment; filename=$nomfichier");
82                        header("Content-Transfer-Encoding: application/octet-stream");
83                        header("Pragma: no-cache");
84                        header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
85                        header("Expires: 0");
86                } else {
87                        if ($nomfichier) header("Content-Disposition: inline; filename=".$nomfichier);
88                }
89               
90                header("Content-Type: ".$ligne->explnum_mimetype);
91                header("Content-Length: ".$ligne->taille);
92                print $ligne->explnum_data;
93                exit ;
94        } else print "ERROR".pmb_mysql_error() ;
95} else {
96        print $msg["forbidden_docnum"];
97}
Note: See TracBrowser for help on using the repository browser.