Gestione file pdf nelle cartelle del sito...

  • Creatore Discussione Creatore Discussione mavix
  • Data di inizio Data di inizio

mavix

Nuovo Utente
13 Lug 2015
11
1
0
Spero di aver fatto la domanda nel giusto posto del forum.
Inizio con il ringraziarvi per il tempo che vorrete dedicarmi.*
il mio problema è il seguente:*
Carico in una cartella via ftp i cedolini mensili dei miei dipendenti, e vorrei che automaticamente si ridistribuissero nelle loro cartelle riservate che sono sempre all'interno del sito, altresì se fosse possibile aggiungere il mese di riferimento oppure rinominandoli automaticamente con il mese di riferimento;*
es:Cedol_000000002.pdf rinominandolo Cedol_000000002_gennaio_2015.pdf dopo lo spostamento automatico nella cartella del dipendente.
Premesso che i nomi di tutti i file dei cedolini sono gli stessi sempre ogni mese perché haimè il programma delle paghe li produce con il numero di matricola diverso ma senza aggiungere il mese, cambia solo il numero finale per ogni dipendente in base alla matricola; (ecco perché ho bisogno di rinominarli)
es: mario =Cedol_000000002.pdf , nicola Cedol_000000016.pdf e così via;
Cerco script che riesca a fare queste operazioni o diversamente realizzarlo con l'aiuto e le indicazioni che mi vorrete dare.

Grazie e Buona serata.
 
ciao
ti ho spostato nella sezione php.
poi un paio di domande per capire meglio.
quel codice, esempio,Cedol_000000002 corrisponde sempre a mario indipendentemente dal mese?
hai una corrispondenza
mario -> 000000002
nicola -> 000000016 ecc.. ad es in un db?
 
Buongioro Super Moderatore
Ti rispondo alla domanda dicendoti che il cedolino che è in formato pdf Cedol_000000002.pdf corrisponde a mario come Cedol_000000179.pdf corrisponde a francesco e così via, ed è così ogni mese, in quanto il software delle paghe crea i pdf per ogni dipendente con riferimento alla matricolasenza aggiungere mese o altro.
Praticamente il software paghe crea una cartella con tutti i cedolini divisi per matricole sempre uguali.
Grazie
 
Scusami dimenticavo di dirti che ho creato un sito wordpress con aree riservate con accesso a cartella riservata che viene visualizzata da ogni utente(dipendente) , ed è in questo sito che vorrei operare con lo script di cui chiedo lumi.
 
ciao
allora se non ho capito male (ti faccio un esempio)
tu scarichi i file pdf del mese di luglio
Cedol_000000002.pdf
Cedol_000000179.pdf
ecc...
vuoi trasformarli e caricarli nelle rispettive cartelle
mario/mario_luglio_000000002.pdf
francesco/francesco_luglio_000000179.pdf
ecc...
giusto?
se è così, come dicevo prima devi avere qualcosa che dica allo script che il cedolino Cedol_000000002.pdf corrisponda a mario, cioè devi avere o un db (o se i dipendenti sono pochi)
un variabile (array) che leghi mario a 000000002 e francesco a 000000179 ecc...
detto questo la cosa è fattibile

p.s.
forse converrebbe anche aggiungere l'anno per evitare sovrascritture o facilitarti nelle eventuali modifiche/cancellazioni
se hai un po' di pazienza ti butto giù uno schema di script ad esempio
dimenticavo forse meglio e più semplice al posto di luglio mettere il numero 07
 
Praticamente è proprio così
e credo vada bene come dici tu con 07 al posto di luglio aggiungendo l'anno
praticamente i cedolini sono 100 ed io ho creato 100 cartelle facendo come di seguito:
dipendente f.rossi = cartella f.rossi = Cedol_000000002.pdf , m.bianchi = cartella m.bianchi = Cedol_000000179.pdf
quindi carico tutti cedolini dentro una cartella dipendenti e poi dal li i file pdf verranno depositati in ogni singola cartella (f.rossi) come sopra ho descritto rinominandoli con aggiunta di mese ed anno.
Ti ringrazio infinitamente per quello che stai realizzando per me.
Mi basta avere 2 o 3 esempi di codifica nello script e poi cambierò i nomi e le cartelle
( ti ricordo che le cartelle dei dipendenti si trovano in un altra cartella rispetto a (dipendenti dove carico ogni volta tutti i cedolini).
Grazie infinite
 
ciao
eccoti uno schema
PHP:
<?php
//ti conviene scaricare tutti i cedolini in una cartella apposita
//chimiamola per ipotesi 'transito'
//poi qui ti simulo o il db o l'array
$dipendente['mario']="000000002";
$dipendente['francesco']="000000179";
$dipendente['giuseppe']="000000315";
//leggi i file che hai caricato in transito
$cedolini=basename(glob("transito/*.pdf"));
$data=("Y-m"); //leggi l'anno e la data
foreach($dipendente as $nome => $codice){//cicli i dipendenti
	foreach($cedolini as $cedolino){//cicli i cedolini
		$pos = strpos($cedolino, $codice);//verifichi che nel cedolio ci sia il codice del dipendente
		if($pos >0){//trovata corrispondenza
			$nuovo_nome_cedolino=$nome."/".$nome."_".$data."_".$codice.".pdf";//e con la cartella
			if(move_uploaded_file ( "transito/".$cedolino , $nuovo_nome_cedolino)){
				//spostamento e rinominazione a buon fine
				//cancelli il vecchio cedolino
				unlink("transito/".$cedolino);
			}
		}
	}
}
?>
lanciando questo script rinomini e trasferisci i cedolini
guarda che non ho messo alcuni controlli es. se la cartella esista o meno
comunque ti conviene fare delle prove perchè non l'ho testato
 
Niente da fare non va e non da alcun errore, forse se mi dai la possibilità di inviarti uno schema grafico?
 
ciao
nella fretta avavevo fatto un paio di erroretti
attento però ai percorsi devi mettere i tuoi
poi ho sotituito move_upload_file con rename cosi non serve nemmeno l'unlink
PHP:
<?php
$dipendente['mario']="000000002";
$dipendente['francesco']="000000179";
//leggi i file che hai caricato in transito
$cedolini=array_map("basename",glob("../transito/*.pdf"));//qui mi ero dimenticato l'array_map
$data=date("Y-m"); //leggi l'anno e la data e qui date
foreach($dipendente as $nome => $codice){//cicli i dipendenti
    foreach($cedolini as $cedolino){//cicli i cedolini
		$pos = strpos($cedolino, $codice);//verifichi che nel cedolio ci sia il codice del dipendente
		if($pos >0){//trovata corrispondenza
            $vecchio_nome_cedolino="../transito/".$cedolino;
			$nuovo_nome_cedolino="../".$nome."/".$nome."_".$data."_".$codice.".pdf";//e con la cartella
			if(rename($vecchio_nome_cedolino , $nuovo_nome_cedolino)){
				echo "spostato $vecchio_nome_cedolino in $nuovo_nome_cedolino<br>";
			}
        }
    }
}
?>
l'ho testato con due pdf e funziona
 
quindi io ho la cartella dipendenti nella cartella principale del sito ossia "/dipendenti" dove ho il cedolino che si chiama proprio così :Cedol_000000021.pdf
poi la cartella del dipendente " a.corano" in "/wp-content/uploads/a.corano"

cosa devo cambiare nel tuo script ?
Ti chiedo di avere pazienza grazie.
 
Ultima modifica:
praticamente ho fatto così, ma non ho capito come sposta e rinomina il file nella cartella del dipendente?
PHP:
<?php 
$dipendente['ml.comeo']="000000002"; 
$dipendente['gs.telfino']="000000016"; 
//leggi i file che hai caricato in dipendenti 
$cedolini=array_map("basename",glob("../dipendenti/*.pdf"));//qui mi ero dimenticato l'array_map 
$data=date("Y-m"); //leggi l'anno e la data e qui date 
foreach($dipendente as $nome => $codice){//cicli i dipendenti 
    foreach($cedolini as $cedolino){//cicli i cedolini 
        $pos = strpos($cedolino, $codice);//verifichi che nel cedolino ci sia il codice del dipendente 
        if($pos >0){//trovata corrispondenza 
            $vecchio_nome_cedolino="../dipendenti/".$cedolino; 
            $nuovo_nome_cedolino="../".$nome."/".$nome."_".$data."_".$codice.".pdf";//e con la cartella 
            if(rename($vecchio_nome_cedolino , $nuovo_nome_cedolino)){ 
                echo "spostato $vecchio_nome_cedolino in $nuovo_nome_cedolino<br>"; 
            } 
        } 
    } 
} 
?>
 
Ultima modifica di un moderatore:
Ti ringrazio comunque anche se non ho risolto, ti chiedo scusa per il disturbo buona serata.
 
Buongiorno di nuovo....
Mi spiace non averti risposto prima, ma ho avuto qualche problema di salute.
Credo di essermi spiegato male io nella richiesta.
Praticamente carico tutti e 100 pdf in una cartella della root del mio sito, qui lo script entra in funzione a mio comando e sposta i file pdf ad uno ad uno e li assegna ad una data cartella che si trova sempre in una posizione diversa della root del sito....es:
Cartella= dipendenti dove si trovano i 100 file pdf Precaricati, poi il file pdf a nome eco_000000032.pdf viene prima spostato in un altra cartella a nome Pippo e successivamente rinominato col nome che vorró assegnargli e così via...
eco_000000023.pdf nella cartella Pluto
eco_000000123.pdf nella cartella Paperino e così via.
Grazie ancora per la disponibilitá.
 

Discussioni simili