Solusi Praktis pada Library Upload Codeigniter 1.7.2

Beberapa hari terakhir ini saya mendownload ulang Codeigniter 1.7.2 untuk mengupdate keamanan sistem pada library upload versi sebelumnya, seperti yang dijelaskan di Codeigniter News. Akan tetapi, setelah saya coba. Kok malah jadi tidak bisa digunakan library uploadnya. Setiap saya masukkan file apapun, sistem mengeluarkan error yang intinya “Extensi file yang dimasukkan tidak diperbolehkan”. Akhirnya karena kebingungan. saya coba trace satu-satu algoritmanya, hingga ke core library Upload-nya.

Ternyata masalahnya ada pada saat menggunakan setting config “file_name”, yang maksudnya adalah untuk me-rename file yang diupload tadi. Solusinya cukup simple, silahkan lihat file Upload.php di folder system Codeigniter. Berikut isi code pada line 211 sebelum diedit:

// if we're overriding, let's now make sure the new name and type is allowed
	if ($this->_file_name_override != '')
	{
		$this->file_name = $this->_prep_filename($this->_file_name_override);
		$this->file_ext  = $this->get_extension($this->file_name);

		if ( ! $this->is_allowed_filetype(TRUE))
		{
			$this->set_error('upload_invalid_filetype');
			return FALSE;
		}
	}

Tinggal edit sedikit, codenya menjadi seperti ini:

// if we're overriding, let's now make sure the new name and type is allowed
	if ($this->_file_name_override != '')
	{
		$this->file_name = $this->_prep_filename($this->_file_name_override).$this->file_ext;

		if ( ! $this->is_allowed_filetype(TRUE))
		{
			$this->set_error('upload_invalid_filetype');
			return FALSE;
		}
	}

Dan viola! Sekarang bisa meng-upload file sambil langsung me-rename file tersebut dengan yang diinginkan. Solusi ini sudah saya tuliskan juga di forum Codeigniter.

Related posts:

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>