Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 43

Discussione: Uploade pdf

  1. #1

    Uploade pdf

    Dunque, non cerco spiegazioni tecniche, vorrei capire la logica. Devo creare uno script attraverso cui l'amministratore del sito posso fare l'uploade di file pdf contenenti fatture. Questi files devono poi essere scaricabili in ordine.

    es.
    codice:
    --------------------
    fattura 1 - 20/10/2005
    -------------------
    fattura 2 - 21/10/2005
    eccetera.
    Per farlo pensavo di:
    far fare l'uploade e richiedere all'amministratore n° fattura e data. Contemporaneamente rinominare il file in fatturanum[num].pdf e registrare sul database i due dati e il percorso. In una terza pagina inserire un ciclo for che stampi tutte le fatture ordinate per [num] e passare il collegamento in un <a></a>...

    Vi pare logico?
    Suggerimenti?
    Idee migliori?

  2. #2

    Re: Uploade pdf

    Originariamente inviato da lorenzos
    Dunque, non cerco spiegazioni tecniche, vorrei capire la logica. Devo creare uno script attraverso cui l'amministratore del sito posso fare l'uploade di file pdf contenenti fatture. Questi files devono poi essere scaricabili in ordine.

    es.
    codice:
    --------------------
    fattura 1 - 20/10/2005
    -------------------
    fattura 2 - 21/10/2005
    eccetera.
    Per farlo pensavo di:
    far fare l'uploade e richiedere all'amministratore n° fattura e data. Contemporaneamente rinominare il file in fatturanum[num].pdf e registrare sul database i due dati e il percorso. In una terza pagina inserire un ciclo for che stampi tutte le fatture ordinate per [num] e passare il collegamento in un <a></a>...

    Vi pare logico?
    Suggerimenti?
    Idee migliori?

    Scusa ma il garante per la privacy ti uccide se fai una cosa del genere.

    Il percorso sarebbe facilmente smascherabile infatti una volta che dai ad un cliente un URL così costruito:

    http://mioserver.com/fatture/000001-2006-01-02.pdf

    è facile capire che la fattura seguente può essere semplicemente:

    http://mioserver.com/fatture/000002-2006-01-02.pdf

    ..... questo significa:

    - rendere pubblici i clienti
    - rendere la tua azienda soggetta ad azioni PENALI per negligenza nella cura dei dati.

    Tutto ciò che non deve essere visto pubblicamente sul web DEVE essere protetto da un'area di accesso (login/pass) e i file che vengono visualizzati anche.

    Fai un'area d'accesso, metti le fatture uploadate in un campo BLOB di mysql.
    La pagina che estrae le fatture deve avere un controllo sulla sessione di login per controllare che l'utente che sta scaricando la fattura sia abilitato a visualizzarla e poi fai un ECHO del campo BLOB del database.

    Per il resto va tutto bene. PS: con questo sistema non devi salvarti il nome del file... lo puoi generare al momento della visualizzazione del file.



  3. #3
    Ok, ho omesso due fattori.
    1, all'area accederà esclusivamente il commercialista della ditta per cui faccio il sito

    2, tutto il sito è protetto da un sistema di password con sessioni...

    Il mio cruccio era sul metodo logico di come fare...
    Fai un'area d'accesso, metti le fatture uploadate in un campo BLOB di mysql.
    Il percorso, giusto?
    con questo sistema non devi salvarti il nome del file... lo puoi generare al momento della visualizzazione del file. +
    In che senso?

  4. #4
    Up...
    Chi mi consiglia?

  5. #5
    Originariamente inviato da lorenzos
    Ok, ho omesso due fattori.
    1, all'area accederà esclusivamente il commercialista della ditta per cui faccio il sito

    2, tutto il sito è protetto da un sistema di password con sessioni...

    Il mio cruccio era sul metodo logico di come fare...

    Il percorso, giusto?

    In che senso?
    Anche se ci accede solo il commercialista le fatture sono su un percorso pubblico (nel senso che sono su un percorso http).
    Se salvi il file e basta non puoi mettere nessuna protezione di sessione all'accesso del file (poichè è un file PDF e non PHP e quindi non esegue script prima di inviare il file).
    Invece, se salvi tutto su database in un campo BLOB, il file in rete non esiste proprio: quando salvi il file su database, inoltre, salvi solo il suo contenuto, viene perso il suo filename (per questo non hai il problema di rinominarlo).
    La tabella dovrebbe contenere:

    ID -> int
    DATA FATTURA -> date
    NUMERO FATTURA -> int
    FILE -> longblob

    Poi crei una pagina di lettura pdf. Chiamala pdf-reader.php (che fa molto figo ) e mettici dentro:

    -> CONTROLLO SULLA SESSIONE
    -> ESTRAZIONE DATABASE
    -> INVIO HEADER (funzione header(); di php) PER DICHIARARE CHE STAI PER SPEDIRE UN FILE PDF E NON CONTENUTI HTML
    -> FAI UN BELL'ECHO SUL CONTENUTO DEL CAMPO FILE.

    Attraverso la funzione header puoi creare un downloader o richiedere l'apertura InLine del plugin di acrobat reader, così l'utente non percepisce la differenza... ed è assicurato perchè prima di ogni download c'è un controllo sulla session fatto da PHP.


  6. #6
    Dunque, ti ringrazio ancora per avermi risposto.

    Ora, vediamo se ho capito.
    Supponiamo che il file pdf in codice contenga:
    codice:
    pdfbbfgisaiauiab<testo>dffdfdfd
    io devo caricarlo e leggerlo e nel database inserire
    id -> auto incremente (inserisce da solo)...
    n° fatt -> digitato
    data fatt-> digitato
    file -> pdfbbfgisaiauiab<testo>dffdfdfd

    Quando il commercialista accede alla pagina che riepiloga le fatture creo un ciclo che va a prendere sul datbase solamente il numero e la data e le stampo tutte con un <a href"pdf-reader.php?chiave=n°fattura"></a>

    Questo è il concetto?

  7. #7
    sì esatto....

    meglio utilizzare pdf-reader.php?id=id-database


    Non il numero della fattura perchè ogni anno il numero della fattura ricomincia da zero... e quindi potresti avere doppioni... l'id autoincrement (come giustamente hai scritto) è una sicurezza di univocità del riferimento alla fattura desiderata.

    Cmq tutto esatto!


  8. #8
    Dunque il pdf io non lo salvo fisicamente come pdf allora.
    Ma come faccio a leggere il pdf per inserire il contenuto nel campo blob?
    E ancora, se io passo per GET l'id, come faccio a richiamarlo nella stampa del for?

  9. #9
    I soliti: fopen e fread.... normali operazione di lettura file binari. Metti tutto in una stringa e poi lo carichi sul database facendo attenzione a utilizzare addslashes sul campo.

    Il ciclo for ti serve per la pagina che visualizza i LINK non per quello che visualizza il pdf.
    Il ciclo con cui stampi i link invece lo fai con il for each su ogni record estratto dal database.... non ti serve nient'altro.

  10. #10
    D'accordo, ma mi manca una cosa, come faccio a comporre il file e ad inviarlo?

    query al database, creo il file fisicamente (fopen("$numerofattura", w)fwrite()... e come lo faccio scaricare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.