TransWikia.com

Upload de array de imagens PHP e MySQL

Stack Overflow em Português Asked by Wagner Viana on November 5, 2021

Eu tenho o seguinte código:

<?php


if(isset($_FILES['files'])){
    $errors = array();

    foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name){
        $file_name = $key.$_FILES['files']['name'][$key];
        $file_size = $_FILES['files']['size'][$key];
        $file_tmp = $_FILES['files']['tmp_name'][$key];
        $file_type = $_FILES['files']['type'][$key];        
        $file_parts = pathinfo($file_name);//Returns an associative array containing file information       
        $extensions = array("jpeg","jpg","png");//Allowed file

    if($file_size > 2097152){

            echo 'Tamanho do arquivo de ser menor que 2MB';

    }else{

    if(in_array ($file_parts['extension'],$extensions)){

        //Rename file
        $file_parts = ".".$file_parts['extension'];
        $file_name = uniqid().$file_parts;



            if(empty($errors)==true){
            //Move the file to a specific folder    
            move_uploaded_file($file_tmp, "img/".$file_name);   

            }else{
                print_r($errors); 
            }//if(empty($errors)==true){

        }else{

            echo'Extens&atilde;o n&atilde;o permitida';

        }//if(in_array ($file_parts['extension'],$extensions))

    }//if($file_size > 2097152){    

    if(empty($errors)){

        print_r("<pre>".$file_name."</pre>");


    }//if(empty($errors))

    }//foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name)


}

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Upload</title>
</head>
<body>
    <form action="" method="POST" enctype="multipart/form-data">
        <input type="file" name="files[]" multiple>
        <input type="submit" value="Enviar">
    </form>
</body>
</html>

Minha dúvida é, o que é melhor, fazer criar uma tabela no banco de dados para as imagens, assim quando eu precisa dessas imagens em algum formulário faço interação um para muitos, ou transformar o array em uma string?

Será que tem outra solução também?

One Answer

Eu salvaria tudo num JSON, muito mais rápido a leitura e você pode inserir keys pra vincular a registros também...ficando a seu critério, mas a princípio apenas savaria no JSON mesmo:

$file = "img/images.json";
$json = json_decode(file_get_contents($file), true);
array_push($json, $file_name);
file_put_contents($file, json_encode($json));

Como neste exemplo, o json pode até ficar no mesmo diretório que as imagens, você pode incrementar outras informações da imagem que se fizer necessário no array também...

Answered by Kenny Rafael on November 5, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP