Welcome Guest, Not a member yet? Register   Sign In
Multiple upload function
#1

[eluser]Référencement Google[/eluser]
Hi,

I give a piece of code that can be usefull for some people that will want to take the time understanding the function. It upload files coming from a multiple upload form and if all ok return a files array, other wise delete the uploaded files from server.

It's sure far from perfect and I release it as is, it's part of an application I have developped, so if you are interrested about use this function, you must of course adapt it for your application.

Also note that I will answer basic questions about it, but I won't give any other kind of support for this.

Code:
function multiple_upload($upload_dir = 'uploads', $config = array())
{
    $CI =& get_instance();
    $files = array();

    if(empty($config))
    {
        $config['upload_path']   = realpath($upload_dir);
        $config['allowed_types'] = 'gif|jpg|jpeg|jpe|png';
        $config['max_size']      = '2048';
    }
        
        $CI->load->library('upload', $config);
        
        $errors = FALSE;
        
        foreach($_FILES as $key => $value)
        {            
            if( ! empty($value['name']))
            {
                if( ! $CI->upload->do_upload($key))
                {                                          
                    $data['upload_message'] = $CI->upload->display_errors(ERR_OPEN, ERR_CLOSE); // ERR_OPEN and ERR_CLOSE are error delimiters defined in a config file
                    $CI->load->vars($data);
                        
                    $errors = TRUE;
                }
                else
                {
                    // Build a file array from all uploaded files
                    $files[] = $CI->upload->data();
                }
            }
        }
        
        // There was errors, we have to delete the uploaded files
        if($errors)
        {                    
            foreach($files as $key => $file)
            {
                @unlink($file['full_path']);    
            }                    
        }
        elseif(empty($files) AND empty($data['upload_message']))
        {
            $CI->lang->load('upload');
            $data['upload_message'] = ERR_OPEN.$CI->lang->line('upload_no_file_selected').ERR_CLOSE;
            $CI->load->vars($data);
        }
        else
        {
            return $files;
        }
    }

Sample usage:
Code:
if( ! $files = $this->upload->multiple_upload('public/photos'))
{
    echo 'Something went wrong during upload';
}
else
{
    echo 'Upload success !<br />';
    echo '<pre>';
    print_r($files);
    echo '</pre>';
}


Messages In This Thread
Multiple upload function - by El Forum - 02-18-2008, 03:51 PM
Multiple upload function - by El Forum - 07-17-2008, 12:32 PM
Multiple upload function - by El Forum - 07-17-2008, 12:40 PM
Multiple upload function - by El Forum - 07-17-2008, 01:13 PM
Multiple upload function - by El Forum - 07-17-2008, 01:17 PM
Multiple upload function - by El Forum - 02-20-2009, 01:33 AM
Multiple upload function - by El Forum - 02-20-2009, 04:43 AM
Multiple upload function - by El Forum - 02-23-2009, 03:58 AM
Multiple upload function - by El Forum - 02-23-2009, 04:03 AM
Multiple upload function - by El Forum - 10-05-2009, 06:35 AM
Multiple upload function - by El Forum - 10-05-2009, 06:43 AM
Multiple upload function - by El Forum - 10-05-2009, 07:11 AM
Multiple upload function - by El Forum - 10-05-2009, 07:18 AM
Multiple upload function - by El Forum - 11-10-2009, 07:03 AM
Multiple upload function - by El Forum - 11-10-2009, 09:15 AM
Multiple upload function - by El Forum - 11-10-2009, 09:19 AM
Multiple upload function - by El Forum - 11-11-2009, 07:19 AM
Multiple upload function - by El Forum - 02-02-2010, 12:46 PM
Multiple upload function - by El Forum - 02-02-2010, 12:52 PM
Multiple upload function - by El Forum - 02-02-2010, 01:06 PM
Multiple upload function - by El Forum - 02-02-2010, 01:16 PM
Multiple upload function - by El Forum - 02-02-2010, 01:38 PM
Multiple upload function - by El Forum - 02-02-2010, 01:44 PM
Multiple upload function - by El Forum - 02-02-2010, 01:50 PM
Multiple upload function - by El Forum - 02-02-2010, 01:52 PM
Multiple upload function - by El Forum - 02-02-2010, 01:58 PM
Multiple upload function - by El Forum - 02-02-2010, 03:41 PM
Multiple upload function - by El Forum - 02-02-2010, 03:42 PM
Multiple upload function - by El Forum - 07-21-2010, 02:27 AM
Multiple upload function - by El Forum - 08-19-2010, 06:40 AM
Multiple upload function - by El Forum - 11-10-2010, 02:17 PM
Multiple upload function - by El Forum - 11-13-2010, 11:53 AM
Multiple upload function - by El Forum - 11-13-2010, 12:15 PM
Multiple upload function - by El Forum - 11-25-2010, 02:25 AM
Multiple upload function - by El Forum - 02-24-2011, 05:25 PM
Multiple upload function - by El Forum - 04-17-2011, 08:48 PM
Multiple upload function - by El Forum - 06-16-2011, 12:10 PM
Multiple upload function - by El Forum - 12-02-2012, 03:43 AM



Theme © iAndrew 2016 - Forum software by © MyBB