move_uploaded_file does not work after concatenating with MD5

-1

I am a small problem, I have a function ready, to upload images and edit it, this function works perfectly, only uses a library (wideimage), I would use another function reusing the codes only I can not save removing the library. NOTE: It arrives saving the name in the bank, it just does not save in the specified folder.

//ESSA FUNÇÃO FUNCIONA NORMAL.
function uploadImagem($arquivo){
        //cria um arquivo temporario, tmp = pasta temporaria,
        //$arquivo['name'] é recebido por parametro
        $img_tmp = $this->sistema_pasta_upload."tmp/".$arquivo['name'];

    //pega qual é a extençãop do arquivo
    $ext = strtolower(end(explode(".",$arquivo['name'])));

    //verifica se é um tipo de arquivo permitido
    //$this->ext_img é os arquivos permitidos.
    // se não for arquivo permitido retorna "RETURN FALSE"
    if(array_search($ext,$this->ext_img) === 0) {
        /*passa o nome do arquivo temporario [tmp_name] e copia
        * para $img_tmp
        */
        if(move_uploaded_file($arquivo['tmp_name'], $img_tmp)){
            // criar um nome unico e randomico para o arquivo

            $foto = md5(uniqid(time())).".".$ext;

            include("libs/wideimage/WideImage.php");
            WideImage::load($img_tmp)->resize(614, 299)->saveToFile($this->sistema_pasta_upload.$foto);
            WideImage::load($img_tmp)->crop('center', 'center', 257, 247)->saveToFile($this->sistema_pasta_upload."thumb/".$foto);
            //deleta o arquivo temporario
            unlink($this->sistema_pasta_upload."tmp/".$arquivo['name']);
            //retorna nome do arquivo para salvar no banco
            return $foto;
        }
    } 

    return false;
}

/ * THIS FUNCTION ARRANTS TO SAVE NORMAL IN THE PASS TMP BUT THEN IT DOES NOT SAVE ON THE THUMB PILE AFTER RECEIVING THE MD5. * /

function uploadFile ($ arq_name) {         // create a temporary file, tmp = temporary folder,         // $ arq_name ['name'] is received by parameter         $ arq_tmp = $ this- > system_folder_upload. "tmp /".$ arq_name ['name'];

//pega qual é a extençãop do arquivo $ext = strtolower(end(explode(".",$arq_nome['name']))); //verifica se é um tipo de arquivo permitido //$this->ext_img é os arquivos permitidos. // se não for arquivo permitido retorna "RETURN FALSE" if(array_search($ext,$this->ext_img) === 0) { /*passa o nome do arquivo temporario [tmp_name] e copia * para $arq_tmp */ if(move_uploaded_file($arq_nome['tmp_name'], $arq_tmp)){ // criar um nome unico e randomico para o arquivo $foto = md5(uniqid(time())).".".$ext; //preciso salvar o arquivo apartir daqui. move_uploaded_file($foto,"thumb/"); //deleta o arquivo temporario //unlink($this->sistema_pasta_upload."tmp/".$arq_nome['name']); //retorna nome do arquivo para salvar no banco return $foto; } } return false; }

    
asked by anonymous 29.03.2016 / 17:42

2 answers

1

Well for me the only way it worked the way I really wanted it was this way, if anyone needs something more complex you can use it.

function UploadArquivoNovo($arq_nome){
                    // Pasta onde o arquivo vai ser salvo
                    $_UP['pasta'] = 'upload/';

                // Tamanho máximo do arquivo (em Bytes)
                $_UP['tamanho'] = 1024 * 1024 * 20; // 20Mb

                // Array com as extensões permitidas
                $_UP['extensoes'] = array('jpg', 'png', 'pdf', 'docx', 'xls', 'xlsx', 'doc', 'rar', 'zip', 'txt', 'ppt', 'pptx', '');

                // Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
                $_UP['renomeia'] = false;

                // Array com os tipos de erros de upload do PHP
                $_UP['erros'][0] = 'Não houve erro';
                $_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
                $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
                $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
                $_UP['erros'][4] = 'Não foi feito o upload do arquivo';

                // Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
                if ($_FILES['arq_nome']['error'] != 0) {
                die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arq_nome']['error']]);
                exit; // Para a execução do script
                }

                // Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar

                // Faz a verificação da extensão do arquivo
                $extensao = strtolower(end(explode('.', $_FILES['arq_nome']['name'])));
                if (array_search($extensao, $_UP['extensoes']) === false) {
                echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";
                }

                // Faz a verificação do tamanho do arquivo
                else if ($_UP['tamanho'] < $_FILES['arq_nome']['size']) {
                echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
                }

                // O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
                else {
                // Primeiro verifica se deve trocar o nome do arquivo
                if ($_UP['renomeia'] == true) {
                // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
                $nome_final = time().'.jpg';
                } else {
                // Mantém o nome original do arquivo
                $nome_final = $_FILES['arq_nome']['name'];
                }

                // Depois verifica se é possível mover o arquivo para a pasta escolhida
                if (move_uploaded_file($_FILES['arq_nome']['tmp_name'], $_UP['pasta'] . $nome_final)) {
                // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
                //echo "Upload efetuado com sucesso!";
                //echo '<br /><a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
                return $nome_final;
                } else {
                // Não foi possível fazer o upload, provavelmente a pasta está incorreta
                echo "Não foi possível enviar o arquivo, tente novamente";
                }

                }



}

    
01.04.2016 / 17:04
0

Use the function:

$ img_tmp="my_folder"

move_uploaded_file($arquivo['tmp_name'], $img_tmp)

Only this function does everything you need.

    
29.03.2016 / 18:21