-
-
Save adityamenon/3214128 to your computer and use it in GitHub Desktop.
<?php if(!defined('BASEPATH')) exit("No direct script access allowed."); | |
class Upload_test extends CI_Controller { | |
public function index() { | |
if($this->input->post('submit')) { | |
$config['upload_path'] = BASEPATH.'../uploads'; | |
$config['allowed_types'] = 'txt'; | |
$this->load->library('upload', $config); | |
if(empty($_FILES) { | |
//redirect or do something else to stop execution | |
} | |
foreach ($_FILES as $key => $value) { //THIS IS THE CRUCIAL PART | |
$this->upload->do_upload($key); | |
var_dump($this->upload->data()); | |
var_dump($this->upload->display_errors()); | |
} | |
exit(); | |
} | |
$this->load->helper('form'); | |
$this->load->view('upload_test'); | |
} | |
//I have no idea why more complex code exists for the same thing elsewhere on the 'net! | |
} |
I used CI some years ago, so I'm not updated at all about its functionality. I currently stick with ZF2/SF2.
Anyway, the uploader "adapter" (inspired by the old ZF1 file transfer adapter) could be aware of the environment since this is more like a PHP limitation (really feels weird to have files in a separate temporary location by default, but it is to avoid loading them into memory)...
Another way of solving it would be to pass $_FILES
like following:$this->uploader->receive($_FILES)
.
It still doesn't work without some assumptions though.
I used CI some years ago, so I'm not updated at all about its functionality.
Ah okay, that is why we are having slight difficulty aligning thoughts on this - this is more of a quick-solve post, because CI's upload library allows only single file uploads, and it's not clear from the documentation if any input field will work or only the ones created with the CI form helper (making me wonder if there was some sort of 'registration' of file fields required by the library). I wanted to show a simple way of looping the upload library to remove any confusion about it.
@adityamenon Aha, I came here from a reshare on G+, not because I'm interested in CI itself :)
Hi! Okay, yes, sorry about the configuration. Actually, CI provides a way to keep that configuration inside a separate file and even initialize the Upload class for use in separate locations (framework configuration files). I guess I should have just alluded to that but somehow felt keeping those lines in this examples make it more complete. In that case, the injection of the uploader happens automatically and nothing is needed to be done.
I am not familiar with Service Oriented Architecture, but in the case of CodeIgniter, do you mean it should just proxy calls to the Model? Yeah, that's a recommended best practice :) But how do I remove all references to
$_FILES
though? I think by extending the Uploader and putting this logic into that, I am guessing...Have you ever used CI?