Partenza biblioteca di upload del CI:
http://www.codeigniter.com/user_guide/libraries/file_uploading.html
Diamo prima un'occhiata a come fare un semplice upload di file senza cambiare il nome del file:
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'jpg|jpeg|gif|png';
$this->upload->initialize($config);
if (! $this->upload->do_upload())
{
$error = $this->upload->display_errors();
}
else
{
$file_data = $this->upload->data();
}
E 'così semplice e funziona abbastanza bene.
Ora, diamo uno sguardo alla carne del problema. In primo luogo abbiamo bisogno di ottenere il nome del file dal array $ _FILES:
$file_name = $_FILES['file_var_name']['name'];
Poi possiamo dividere la stringa con un delimitatore _
come questo:
$file_name_pieces = split('_', $file_name);
Poi dovremo iterare il lista e fare una nuova stringa in cui tutti tranne il primo spot hanno lettere maiuscole:
$new_file_name = '';
$count = 1;
foreach($file_name_pieces as $piece)
{
if ($count !== 1)
{
$piece = ucfirst($piece);
}
$new_file_name .= $piece;
$count++;
}
Ora che abbiamo il nuovo nome del file, possiamo rivedere ciò che abbiamo fatto in precedenza. In sostanza, si fa tutto lo stesso, tranne che si aggiunge questo $ config param:
$config['file_name'] = $new_file_name;
e che dovrebbe farlo! Per impostazione predefinita, CI ha la overwrite
$ config param insieme a FALSE
, quindi se ci sono eventuali conflitti, si aggiungerà un numero alla fine del nome del file. Per l'elenco completo dei parametri, vedere il collegamento nella parte superiore di questo post.
lavorato ... Grazie notevolmente – jgravois
Grande risposta! Questo mi aiuta molto. –
Sto cercando di passare dall'utilizzo del '_' delimitatore di utilizzare il' .'. In termini di esplodere sul delimitatore '.', un nome di file utilizzando' .' invece di '_' ha più senso. Comunque, per qualche ragione il salvataggio non sta prendendo i miei nomi '.', ma insiste sull'uso di' _'. Qualcuno si imbatte in questo tipo di problema rinominando le immagini con CI? – TARKUS