Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72

    Limitare caricamento file pdf

    Ciao a tutti, ho un problema sul caricamento dei file pdf in una cartella con relativa creazione di una riga nella tabella uploads contenente i percorsi, dimensioni e nomi dei file caricati.

    Quindi per limitare l'inserimento di file solo in formato pdf, scrivo:

    if($fileType != "pdf" or $fileType != "PDF" ) {
    echo "Puoi caricare solo file con formato pdf.";exit();
    }

    Qualunque file carico, mi da l'errore inserito nel comando echo.

    Qualche aiutino? grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ti conviene fare

    Codice PHP:
    if(strtolower($fileType) != 'pdf'
    Cmq il tuo è un problema di "logica", devi usare AND non OR: Se $fileType = 'pdf' la seconda espressione è vera (pdf è diverso da PDF) quindi entra (e viceversa)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    Quote Originariamente inviata da boots Visualizza il messaggio
    Ti conviene fare

    Codice PHP:
    if(strtolower($fileType) != 'pdf'
    Cmq il tuo è un problema di "logica", devi usare AND non OR: Se $fileType = 'pdf' la seconda espressione è vera (pdf è diverso da PDF) quindi entra (e viceversa)
    Ciao Boots, oggi pomeriggio provo, ora sono al lavoro. Io pensavo che con OR bastasse che solo una delle due espressioni fosse vera per restituire true all'intero costrutto logico... nel senso carica i file pdf o PDF ed escludi tutti gli altri...

    Intanto ti ringrazio, come sempre sei preciso e chiaro. Grazie! 😊

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Io pensavo che con OR bastasse che solo una delle due espressioni fosse vera per restituire true all'intero costrutto logico
    E questo è corretto. Ma se ci pensi è errato il ragionamento: devono essere entrambe vere per entrare (estenzione diversa da pdf e da PDF)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    Quindi considerando
    Codice PHP:
    $fileType=$_FILES["file"]["type"]; 
    con questa istruzione


    Codice PHP:
    if(strtolower($fileType) != 'pdf'
    se arriva un file esempio " CasaMadre.PDF "

    mi si converte $fileType cioè l'estensione del file in .pdf in minuscolo?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    Quote Originariamente inviata da Alfoxx Visualizza il messaggio
    Quindi considerando
    Codice PHP:
    $fileType=$_FILES["file"]["type"]; 
    con questa istruzione


    Codice PHP:
    if(strtolower($fileType) != 'pdf'
    se arriva un file esempio " CasaMadre.PDF "

    mi si converte $fileType cioè l'estensione del file in .pdf in minuscolo?

    ciao Alfoxx, si è così. ma conviene che ti risponda boots che è più autorevole di me

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    Quote Originariamente inviata da boots Visualizza il messaggio
    E questo è corretto. Ma se ci pensi è errato il ragionamento: devono essere entrambe vere per entrare (estenzione diversa da pdf e da PDF)

    boots, perdonami, ma anche scrivendo:

    if(strtolower($fileType) != 'pdf') {
    echo "Puoi caricare solo file con formato pdf.";exit();
    }

    mi da errore... concordo il tuo ragionamento, quindi testando mi aspettavo che caricando un file pdf il codice filasse liscio come l'olio, cavoli ero così contento oggi quando mi hai risposto!!!

    non capisco, ecco la parte di codice che ho scritto...


    // Controllo id_prat
    $query_id_prat = mysql_query("SELECT id_prat FROM pratiche WHERE id_prat = '" . mysql_insert_id() . "' ");
    $dati_id_prat = mysql_fetch_array($query_id_prat);


    $id_pratica = (isset($_POST['id_pratica'])) ? trim($_POST['id_pratica']) : '';
    $id_ut_utenti = (isset($_POST['id_ut_utenti'])) ? trim($_POST['id_ut_utenti']) : '';
    $nome_utente = (isset($_POST['nome_utente'])) ? trim($_POST['nome_utente']) : '';


    $errors= array();
    foreach($_FILES['userfile']['tmp_name'] as $key => $tmp_name ){
    $fileName = $key.$_FILES['userfile']['name'][$key];
    $fileSize =$_FILES['userfile']['size'][$key];
    $tmpName =$_FILES['userfile']['tmp_name'][$key];
    $fileType=$_FILES['userfile']['type'][$key];
    $id_pratica = $dati_id_prat['id_prat'];

    if(!get_magic_quotes_gpc()){
    $nome_utente = addslashes($nome_utente);
    $id_ut_utenti = addslashes($id_ut_utenti);
    $id_pratica = addslashes($id_pratica);
    $fileName = addslashes($fileName);
    $fileSize = addslashes($fileSize);
    $fileType = addslashes($fileType);}


    if($fileSize > 5242880){
    $errors[]='File size must be less than 5 MB';
    echo 'Dimensioni file superiore a 5 Mb';exit();}


    if(strtolower($fileType) != "pdf') {
    echo "Puoi caricare solo file con formato pdf.";exit();}


    // Controllo id utente
    $query_ut_utenti = mysql_query("SELECT * FROM utenti WHERE id = '" . $_SESSION['login'] . "' LIMIT 1");
    $dati_ut_utenti = mysql_fetch_array($query_ut_utenti);
    $id_ut_utenti = $dati_id['id'];


    // Controllo nome utente
    $nome = $dati_ut_utenti['nome'];
    $cognome = $dati_ut_utenti['cognome'];
    $nome_utente = $nome." ".$cognome;


    $fp = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);


    $query_file = "INSERT INTO upload (id_pratica, id_ut_utenti, nome_utenti, name, size, type, content ) "." VALUES ('$id_pratica', '$id_ut_utenti', '$nome_utente', '$fileName', '$fileSize', '$fileType', '$content')";


    $desired_dir=$_SERVER["DOCUMENT_ROOT"] . "/xxx/uplds/";


    if(empty($errors)==true){
    if(is_dir($desired_dir)==false){
    mkdir("$desired_dir", 0700); // Create directory if it does not exist
    }
    if(is_dir("$desired_dir/".$fileName)==false){
    move_uploaded_file($tmpName,"$desired_dir/".$fileName);
    }else{ // rename the file if another one exist
    $new_dir="$desired_dir/".$fileName.time();
    rename($tmpName,$new_dir) ;
    }
    mysql_query($query_file);
    }else{
    print_r($errors);
    }
    }
    if(empty($error)){
    echo "Success";
    }
    // Reindirizzo l'utente ad una pagina di conferma della registrazione
    header('Location: gestione.php');
    exit;
    a parte il codice deprecato che devo sistemare, dove cavolo sbaglio?

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    In questi casi ti conviene stampare a video cosa contiene $fileType.
    Cmq se non sbaglio per i pdf dovresti avere come tipo 'application/pdf' non solo 'pdf'

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    Quote Originariamente inviata da boots Visualizza il messaggio
    In questi casi ti conviene stampare a video cosa contiene $fileType.
    Cmq se non sbaglio per i pdf dovresti avere come tipo 'application/pdf' non solo 'pdf'
    si anche io sto ragionando su questi temi, e confermo che se carichi un file pdf , se visualizzi il tipo di file esce application/pdf

    Codice PHP:

    if(strtolower($fileType) != "application/pdf") { 
    Ultima modifica di Alfoxx; 28-09-2016 a 10:21

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    Quote Originariamente inviata da boots Visualizza il messaggio
    In questi casi ti conviene stampare a video cosa contiene $fileType.
    Cmq se non sbaglio per i pdf dovresti avere come tipo 'application/pdf' non solo 'pdf'
    Ciao boots, vedo ora la tua risposta e ti ringrazio per l'aiuto. Appena posso provo a fare come dici. Ad ogni modo nel codice che ho trascritto ci devono essere altri errori, perché per esempio se il file é superiore ai 5 mb me lo carica lo stesso, oppure sovrascrive file nominati allo stesso modo e per tutti i file aggiunge uno 0 davanti al nome! Mi sto cervellando, ma nulla... ti posso chiedere solo se a livello logico il codice sia corretto!!

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.