2016-05-20 30 views
6

sto file in codeigniter caricamento tramiteestensione del file è cambiare maiuscolo a minuscolo in CodeIgniter

$this->upload->do_upload('image') 

ma quando i file si sposta al percorso particolare l'estensione del file viene modificato (è cambiato in minuscolo)

per esempio se carico file "profile.jpg" E 'cambia in "profile.jpg"

+1

Avrei pensato che questo è un vantaggio, ora si sa aspettarsi tutte le estensioni di essere in minuscolo. Se stai salvando il nome del file in un database che si interrompe quando lo si recupera a causa della distinzione tra maiuscole e minuscole, basta strtolower() tutti i nomi di file quando si inserisce in DB – JohnnyFaldo

+1

Sì Johnny è il vantaggio di ciò, ma perché il codeigniter lo modifica.? e strtolower() è una buona opzione, grazie per quello. –

+0

Non so perché, la mia ipotesi migliore sarebbe perché alcuni sistemi fanno distinzione tra maiuscole e minuscole, quindi normalizza tutte le estensioni di file sui caricamenti. La migrazione del tuo sito su un sistema case sensitive da un sistema senza distinzione tra maiuscole e minuscole potrebbe rivelarsi problematica altrimenti – JohnnyFaldo

risposta

2

favore cambia libreria di sistema CI

predefinita in upload CI libreria $ file_ext_tolower = FALSE.

.System \ librerie \ upload.php

public $file_ext_tolower = TRUE; 
1

do_upload fa questo

$ config [' tutto owed_types'] = 'gif | jpg | png'

function do_upload() 
    { 
     $config['upload_path'] = './uploads/'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size'] = '100'; 
     $config['max_width'] = '1024'; 
     $config['max_height'] = '768'; 

     $this->load->library('upload', $config); 

     if (! $this->upload->do_upload()) 
     { 
      $error = array('error' => $this->upload->display_errors()); 

      $this->load->view('upload_form', $error); 
     } 
     else 
     { 
      $data = array('upload_data' => $this->upload->data()); 

      $this->load->view('upload_success', $data); 
     } 
    } 

Se si desidera utilizzare lo stesso nome/estensione di inviare per salvare il file. È possibile utilizzare:

$upload_dir= $this->config->item("upload_dir"); 
$fileName = $_POST['sku_code'].".".$extension; 
$filePath = $upload_dir.$fileName; 
move_uploaded_file($_FILES["image-file"]["tmp_name"],$filePath); 

Link utile:

https://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html