Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    facendo anche in questo modo non funziona, non riesce a convertire la porzione del nome del $fileName.


    Codice PHP:
    $fileId explode("_",$hidProgrNews."_".$_FILES['txtPdf']['name']);
    $fileName strstr($hidProgrNews."_".$_FILES['txtPdf']['name'], '_');//cosi non funziona
    //$fileName = "PPCèQ.pdf";cosi funziona
    echo "id: " $fileId[0] . " - name: " converti_accenti($fileName);exit; 
    non so più che santo votare

  2. #12
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    putroppo non ti so dire il perchè non ti funzioni correttamente la rename()...ha controllato cosa ti restituisce facendo un if della variabile $PDF?

  3. #13
    facendo un echo di $PDF mi restituisce 1...mma!!!

  4. #14
    Originariamente inviato da ANTAGONIA
    facendo un echo di $PDF mi restituisce 1...mma!!!
    Non e' proprio sto gran mistero, eh? Basterebbe ogni tanto dare un'occhiata al manuale, leggendo quello che c'e' scritto:

    http://uk.php.net/rename
    Return Values

    Returns TRUE on success or FALSE on failure.

  5. #15
    Originariamente inviato da k.b
    Non e' proprio sto gran mistero, eh? Basterebbe ogni tanto dare un'occhiata al manuale, leggendo quello che c'e' scritto:

    http://uk.php.net/rename
    ok sono d'accordo, e ti ringrazio.Quindi restituendomi 1 e quindi TRUE la rinomina è andata bene...
    Il mio problema è di togliere quelle maledette lettere accentate dal nome del file, perchè quando vado a caricare nella cartella il file e nel campo del DB il nome del file trovo i caratteri convertiti e questo mi crea problemi...
    Quindi, dato che nel modo che ho postato quelle lettere accentate non le sostituisce c'è un altro modo?
    Se si, quale?
    Grazie mille per la vostra disponibilità.

  6. #16
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Quando fai l'upload, prendi il nome del file, applica htmlentities, con una regexp elimina il superfluo e salva il file direttamente con il nuovo nome:
    codice:
    $nome = htmlentities(utf8_decode($_FILES['txtPdf']['name']));//forse utf8_decode è superfluo,magari "dannoso"
    $nome = preg_replace("/&(.)(uml);/", "$1e", $nome); //ä -> ae, ö -> oe, etc.
    $nome = preg_replace("/&(.)(acute|cedil|circ|ring|tilde|grave);/", "$1", $nome);
    $nome = preg_replace("/([^a-zA-Z0-9\.\-]+)/", '-', html_entity_decode($nome));
    $nome = trim($nome,'-');
    move_uploaded_file($_FILES['txtPdf']['tmp_name'], $base_dir.$nome);
    //etc
    range caratteri non accettati: ([^a-zA-Z0-9\.\/\-]+), applicata a "codice_MArtè.jpg" restituisce (dovrebbe ) "codice-MArte.jpg".
    Non so perché la funzione che hai postato all'inizio non sostituisce, stampa $_FILES['txtImmagine']['name'] a video prima di darlo in pasto alla funzione. $_FILES['txtPdf']['tmp_name'] contiene già un path assoluto.

  7. #17
    grande....hai capito il mio problema....
    funziona ed è tutto ok...
    ti ringrazio per la gentilezza, buona giornata

  8. #18
    fase 2.
    ho implementato il tuo script con uno per eseguire un multi upload e fin qui tutto ok...
    quello che mi serve ora e che non riesco ad ottenere è, di creare un array con il nome dei 2-3 file che vado a caricare, perchè quell'array mi serve per una insert o update per il campo filePdf..
    questo è lo script:
    Codice PHP:
    for($i=0;$i<count ($_FILES['txtPdf']['name']);$i++)
        echo 
    "Risultato file ".($i+1).": ".singleUpload($i,$base_dir$Cartellamese,$maxSize$acceptType)."
    "
    ;

    function 
    singleUpload($i,$base_dir,$Cartellamese ,$maxSize$acceptType) {
            if(@
    $_FILES['txtPdf']['name'][$i] != "") {
                
    $nome htmlentities(utf8_decode($_FILES['txtPdf']['name'][$i]));//forse utf8_decode è superfluo,magari "dannoso"
                
    $nome preg_replace("/&(.)(uml);/""$1e"$nome); //ä -> ae, ö -> oe, etc.
                
    $nome preg_replace("/&(.)(acute|cedil|circ|ring|tilde|grave);/""$1"$nome);
                
    $nome preg_replace("/([^a-zA-Z0-9\.\-]+)/"'-'html_entity_decode($nome));
                
    $nome trim($nome,'-');
                
    //echo $nome;
                
    $cod_RG .=  $i.",";
                
                
    $destinazione $base_dir."News/".$Cartellamese.basename($nome);
                if(
    $_FILES['txtPdf']['size'][$i] <= $maxSize*1024) {
                    if(
    in_array($_FILES['txtPdf']['type'][$i], $acceptType)) {
                        if(@
    move_uploaded_file($_FILES['txtPdf']['tmp_name'][$i], $destinazione))
                            return 
    "File caricato con successo!";
                        else
                            return 
    "Errore nell'upload del file";
                    }else
                        return 
    "Tipo di file non accettato!";
                }else
                    return 
    "Dimensione del file troppo grande, massima dimensione accettata: ".$maxSize." kilobyte";
            }elseif(isset(
    $_POST['go']))
                return 
    "Nessun file inserito!";
        } 
    fin qui tutto ok...
    volevo fare in questo modo per ottenere ciò che voglio ma mi restituisce questo errore:
    Undefined variable: cod_RG
    Codice PHP:

    //$cod_RG = isset($cod_RG) ? $cod_RG : '';anche definendo la variabile in questo modo non và
    $cod_RG '';
    for(
    $i=0;$i<count ($_FILES['txtPdf']['name']);$i++)
    etc etc...
    function 
    singleUpload($i,$base_dir,$Cartellamese ,$maxSize$acceptType) {
    etc etc....
    $nome trim($nome,'-');
    $cod_RG .=  $nome[$i].",";
    }
    //togli l'ultima virgola
    $cod_RG substr($cod_RG0, -1);
    echo 
    $cod_RG
    ma come faccio per creare un array con i 3 nomi dei file?
    grazie ancora

  9. #19
    ok...risolto in questo modo:
    Codice PHP:
    $phFilePdf             $_FILES['txtPdf']['name'];

    $filePdfCaricati '';
    foreach(
    $phFilePdf as $key => $value) {
        
    $filePdfCaricati .=  $value.",";

    $filePdfCaricati substr($filePdfCaricati0, -1);
    echo 
    $filePdfCaricati

  10. #20
    scusate ma....adesso mi restituisce questo errore
    Fatal error: Call to undefined function singleUpload()
    è rimandato a questa riga:
    Codice PHP:
    echo "Risultato file ".($i+1).": ".singleUpload($i,$base_dir$Cartellamese,$maxSize$acceptType)."
    "

    finché l'ho provato esternamente a determinati controlli funzionava, adesso l'ho spostato all'interno di un paio di controlli ma alla fine anche commentandoli,non funziona più come mai?
    la struttura è rimasta tale e quale:
    Codice PHP:
    $base_dir "DOC/";
                
    $maxSize 3000000//massima dimensione dei file in kilobyte
                
    $acceptType = array( //tipi di file accettati, in questo caso solo immagini
                    
    'pdf' => 'application/pdf',
                    
    'png' => 'image/png',
                    
    'jpe' => 'image/jpeg',
                    
    'jpeg' => 'image/jpeg',
                    
    'jpg' => 'image/jpeg',
                    
    'gif' => 'image/gif',
                    
    'bmp' => 'image/bmp',
                    
    'ico' => 'image/vnd.microsoft.icon'
                
    );
                for(
    $i=0;$i<count ($_FILES['txtPdf']['name']);$i++)
                    echo 
    "Risultato file ".($i+1).": ".singleUpload($i,$base_dir$Cartellamese,$maxSize$acceptType)."
    "
    ;
                
                    function 
    singleUpload($i,$base_dir,$Cartellamese ,$maxSize$acceptType) {
                        if(@
    $_FILES['txtPdf']['name'][$i] != "") {
                            
    $nome htmlentities(utf8_decode($_FILES['txtPdf']['name'][$i]));//forse utf8_decode è superfluo,magari "dannoso"
                            
    $nome preg_replace("/&(.)(uml);/""$1e"$nome); //ä -> ae, ö -> oe, etc.
                            
    $nome preg_replace("/&(.)(acute|cedil|circ|ring|tilde|grave);/""$1"$nome);
                            
    $nome preg_replace("/([^a-zA-Z0-9\.\-]+)/"'-'html_entity_decode($nome));
                            
    $nome trim($nome,'-');
                            
    //echo $nome;
                            
                            
    $destinazione $base_dir."News/".$Cartellamese.basename($nome);
                            if(
    $_FILES['txtPdf']['size'][$i] <= $maxSize*1024) {
                                if(
    in_array($_FILES['txtPdf']['type'][$i], $acceptType)) {
                                    if(@
    move_uploaded_file($_FILES['txtPdf']['tmp_name'][$i], $destinazione))
                                        return 
    "File caricato con successo!";
                                    else
                                        return 
    "Errore nell'upload del file";
                                }else
                                    return 
    "Tipo di file non accettato!";
                            }else
                                return 
    "Dimensione del file troppo grande, massima dimensione accettata: ".$maxSize." kilobyte";
                        }elseif(isset(
    $_POST['go']))
                            return 
    "Nessun file inserito!";
                    } 
    aiutoooooooooooo

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.