Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Prima di tutto alcune annotazioni:
    da
    if(empty($errors)==true){
    if(file_exists("$directory/".$fileName)== true){

    puoi rimuovere ==true è sottointeso.

    mentre
    if(is_dir($directory)==false){
    if(is_dir("$directory/".$fileName)==false){

    puoi scriverli
    if( ! is_dir($directory) ){
    if( ! is_dir("$directory/".$fileName) ){

    Non che come fai tu sia sbagliato, ma così il codice diventa un po' più pulito.

    Veniamo al tuo problema:
    tu prima fai l'upload e sposti il file nella cartella con move_uploaded_file() e solo dopo controlli se c'è (con file_exists() ), ovvio che c'è, ce l'hai appena messo, infine lo rinomini.
    Il risulato è che prima sovrascrivi il vecchio file e poi cambi il nome, ti ritrovi solo col nuovo file col nome cambiato.

    Devi fare il contrario, prima controllare se nella cartella c'è un file con quel nome, e poi copiarci quello che stai caricando modificandone il nome se necessario.

    Altra cosa:
    con
    $fileName.time()

    quello che fai è appendere un timestamp dopo l'estensione del file!
    dovresti fare
    time().$filename;
    Ultima modifica di Alhazred; 30-09-2016 a 10:35

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    19
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Prima di tutto alcune annotazioni:
    da
    if(empty($errors)==true){
    if(file_exists("$directory/".$fileName)== true){

    puoi rimuovere ==true � sottointeso.

    mentre
    if(is_dir($directory)==false){
    if(is_dir("$directory/".$fileName)==false){

    puoi scriverli
    if( ! is_dir($directory) ){
    if( ! is_dir("$directory/".$fileName) ){

    Non che come fai tu sia sbagliato, ma cos� il codice diventa un po' pi� pulito.

    Veniamo al tuo problema:
    tu prima fai l'upload e sposti il file nella cartella con move_uploaded_file() e solo dopo controlli se c'� (con file_exists() ), ovvio che c'�, ce l'hai appena messo, infine lo rinomini.
    Il risulato � che prima sovrascrivi il vecchio file e poi cambi il nome, ti ritrovi solo col nuovo file col nome cambiato.

    Devi fare il contrario, prima controllare se nella cartella c'� un file con quel nome, e poi copiarci quello che stai caricando modificandone il nome se necessario.

    Altra cosa:
    con
    $fileName.time()

    quello che fai � appendere un timestamp dopo l'estensione del file!
    dovresti fare
    time().$filename;
    Ciao Alhazred grazie mille per la risposta, funziona tutto alla grande! Sei un grande!

    Alcune considerazioni: impostando il rename con time() il file da caricare, se gi� di suo � nominato con una stringa di molti caratteri, verrebbe abbastanza lungo. Cio� carico il file malattia_dipendente_cheneso_blablabla.pdf, questo file � gi� presente, quindi il codice gli aggiunge il timestamp.

    Domanda: per accorciare il nome del file come posso fare?

    Altra considerazione: ho impostato nel file php.ini il numero massimo di upload in 5 file da poter caricare simultaneamente e funziona. quindi se io seleziono 7 file dal form, in cartella ne vengono caricati solo 5. Quindi penso all'utente sbadato che che ne seleziona piu di 5 e preme invio. Se non controlla nella sua pagina personale, penser� di averli caricati tutti. Domanda: c'� modo di bloccare l'invio se l'utente seleziona piu di 5 file e di avvisarlo ?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.