Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problemi con upload

  1. #1

    Problemi con upload

    ciao!
    ho creato una piccola classe da richiamare quando viene inviato un form e serve per caricare documenti PDF:
    Codice PHP:
    <?php

    class GestioneFileDirectory {

        public function 
    doUpload($dirUpload$file, array $typeArray$maxSize$nome) {
            if (
    is_uploaded_file($file['pdf_file']['tmp_name'])) {
                if (!
    in_array($file['pdf_file']['type'], $typeArray)) {
                    return 
    '<h3 class="error">Il file non è un PDF</h3>';
                } elseif (
    $file['pdf_file']['size'] > $maxSize) {
                    return 
    '<h3 class="error">Il file è troppo grande</h3>';
                } else {
                    if (
    move_uploaded_file($file['pdf_file']['tmp_name'], $dirUpload $nome '.pdf')) {
                        return 
    '<h3>File caricato</h3>';
                    } else {
                        return 
    $file['pdf_file']['error'] . '
    '
    ;
                        
    //return '<h3 class="error">Impossibile caricare il file ' . $file['pdf_file']['name'] . '</h3>';
                    
    }
                }
            } else {
                return 
    '<h3 class="error">Si è verficato un errore o non è stato inviato nessun file</h3>';
            }
        }

    }
    in pratica funzionano tutti i controlli (se non pdf o se la dimensione è troppo grande), solo che in vece di caricare il file mi stampa sempre la riga con l'errore, che però mi ritorna sempre 0.
    da quanto ho capito 0 vuol dire che non ci sono errori.
    questa la pagina:
    Codice PHP:

    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
        <fieldset>
            <legend>Carica file PDF</legend>
            <?php
            
    if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['btn_pdf'])) {
                if (empty(
    $_POST['nome']) || $_POST['sezione'] == '*') {
                    echo 
    '<h3 class="error">Nome e sezione obbligatori</h3>';
                } else {
                    
    $typeArray = array(
                        
    'pdf' => 'application/pdf'             
                    
    );
                    
    $gestFileDir = new GestioneFileDirectory();
                    echo 
    $gestFileDir->doUpload(PDF $_POST['sezione'] . '/'$_FILES$typeArray102400trim(strtolower($_POST['nome'])));
                }
            }
            
    ?>
            <input type="text" name="nome" value="" />

            <select name="sezione">
                <option value="*">*</option>
                <?php
                
    foreach ($gestFileDir->getPdfDirectory(PDF) as $dir) {
                    echo 
    '<option value="' $dir '">' $dir '</option>';
                }
                
    ?>
            </select>

            <input type="file" name="pdf_file" value="" />

            <input type="submit" name="btn_pdf" value="Carica" />
        </fieldset>
    </form>
    non riesco veramente a capire dove sbaglio.

  2. #2
    Se ti visualizza sempre il codice di errore allora significa che questa condizione è falsa:

    Codice PHP:
    ...
    if (
    move_uploaded_file($file['pdf_file']['tmp_name'], $dirUpload $nome '.pdf')) { 
    ... 
    Prova a stampare il contenuto di tutte le variabili che entrano in gioco per vedere se contengono i valori corretti.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    si fino a qua ci ero arrivato.
    il fatto che non pare ci sia un errore visto che lo 0 corrisponde a un non errore.
    di volta in volta mi sono fatto stampare:
    -$dirUpload . $nome . '.pdf' -> directory di upload con nome ed estensione, provato anche con percorso assoluto
    -$file['pdf_file']['type'] -> application/pdf
    -$file['pdf_file']['tmp_name'] -> C:\PHP\upload\phpFC3.tmp
    -$file['pdf_file']['name'] -> 1.pdf
    -$file['pdf_file']['size'] -> 41163

    l'unica altra cosa che mi viene in mente è che non i permessi in scrittura su quella directory.

  4. #4
    si il problema erano i permessi.
    ogni servizio fa in maniera diversa ed essendo la prima volta che lavoro con questo servizio non lo avevo considerato.
    grazie!

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.