avenirer / MY_Upload

An addition to the CI_Upload, that allows for multiple files upload.
38 stars 23 forks source link

Trick for upload with this library #4

Closed vitordesousa closed 8 years ago

vitordesousa commented 8 years ago
$config = array(
    'upload_path'           => $dir_path,
    'allowed_types'         => 'txt|doc|docx|xls|xlsx|pdf|pps|ppt|ppsx|pptx|zip|rar|7z|bmp|jpg|jpeg|gif|png|mp3|wma|aac|ogg|ac3|mid|wav|avi|mpg|mpeg|mov|mkv|rmvb|fla|ai|psd|swf|eps|svg|tif|cdr|dwg|css|sql|html|js',
    'max_size'              => '0',
    'overwrite'             => FALSE,
);
// load Upload library
$this->upload->initialize($config);

if ( ! $this->upload->initialize($config) ) // se não fizer o upload
{
    $this->session->set_flashdata('danger', $this->upload->display_errors('',''));
    redirect('os/adicionar_ordem');
}

$this->upload->do_upload( $field_name );
$files = $this->upload->data();

if( count($files) == 1)
{
    $nomeArquivo        = $files['file_name'];
    $semext             = $files['raw_name'];
    $ext                = $files['file_ext'];

    // + Convertendo o nome do arquivo para "nome_numeroAleatorio.extensao"
    $arquivoConvertido                  = url_title(convert_accented_characters($semext), '-',  TRUE);
    $arquivoCompleto                    = $arquivoConvertido . '_' . rand(1,9999) . $ext;
    // / Convertendo o nome do arquivo para "nome_numeroAleatorio.extensao"

    $originalMaisDeUm   = $nomeArquivo;
}
else if ( count($files) > 1 )
{
    foreach ($files as $key => $file) {

        $nomeArquivo        = $files[$key]['file_name'];
        $semext             = $files[$key]['raw_name'];
        $ext                = $files[$key]['file_ext'];

        // + Convertendo o nome do arquivo para "nome_numeroAleatorio.extensao"
        $arquivoConvertido                  = url_title(convert_accented_characters($semext), '-',  TRUE);
        $arquivoCompleto                    = $arquivoConvertido . '_' . rand(1,9999) . $ext;
        // / Convertendo o nome do arquivo para "nome_numeroAleatorio.extensao"

        $originalMaisDeUm   = $nomeArquivo;

        $ultimaOs               =   $this->os_model->getLastOs();
        $ultimaMaisUm           =   $ultimaOs['idOs']+1;

        $file_data = array(
            'file_name'             => $arquivoCompleto,
            'file_orig_name'        => '',
            'file_path'             => '',
            'idOsFiles'             => $ultimaMaisUm,
            'idAtualizacaoOsFiles'  => 0,
            'upload_date'           => date('Y-m-d H:i:s')
        );

        $original = $dir_path . $originalMaisDeUm;
        $renomeado = $dir_path . $arquivoCompleto;
        rename($original, $renomeado);

        $resp = $this->os_model->salvaFiles($file_data);
        if ($resp === TRUE)
        {
            $this->handle_success('File(s) was/were successfully uploaded.');
        }
        else
        {
            for ($i = 0; $i < count($files); $i++)
            {
                $file = $dir_path . $files[$key]['file_name'];
                if (file_exists($file))
                {
                    unlink($file);
                }
            }
            $this->session->set_flashdata('danger', 'Houve um erro ao gravar os arquivos no banco de dados, por favor tente novamente!');
            redirect('os/adicionar_ordem');
        }
    }

}
avenirer commented 8 years ago

I don't understand... what is the problem? Do you want me to read the code and understand the problem or what?

vitordesousa commented 8 years ago

Sorry, it's not a problem, but it's a trick for those who are having difficulty configuring .. This is part of my code that I made earlier.