2013-07-26 17 views
5

1. La verifica dell'opzione encrypt_name della libreria di caricamento del codeigniter è univoca?codeigniter upload encrypt_name univocità

So che l'opzione overwrite è importante. Se overwrite è TRUE, si sovrascriverà e se è FALSE, rinominerà il file aggiungendo un numero alla fine del nome.

La domanda è: Sarà rigenerare il nome criptato fino a trovare un nome unico, anche se è overwriteTRUE? Lo chiedo perché è ovvio che quando vogliamo il nome cifrato, ovviamente non vogliamo sovrascrivere.

Il problema con rinomina aggiungendo alcuni numeri è che corrompe la dimensione dei nomi di file. Molti file avranno 32 caratteri nomefile e alcuni potrebbero avere 33 caratteri nomefile che corrompono il coordinamento.

2. È possibile generare un risultato sempre duplicato?

+0

Se 'sovrascrivi' è impostato su' true', il nome codificato se abbinato a un file esistente sostituirà il file precedente altrimenti rinominerà il file caricato corrente. –

+0

Siamo spiacenti, mi spiace, intendevo anche se sovrascrivo se 'FALSE'. Modificato il q. Grazie per la vostra nota. –

+0

Sì, anche se corrisponde a un file già caricato che è quasi impossibile, rinominerà il file che viene caricato. –

risposta

6

Dato che Codeigniter utilizza md5(uniqid(mt_rand())) per generare il nome del file crittografato, suppongo che troverai la risposta nello PHP docs for uniquid.

Risposta breve (per 2.) sarebbe: forse, ma probabilmente no.

E per rispondere alla prima domanda: no, CI non genera un nuovo nome file crittografato, se già esiste. Aggiunge un numero alla fine del nome.

Una breve occhiata al codice sorgente di /libraries/Upload.php, riga 415, aiuta.