Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda para criar multiplo upload


Wilbert Joosen

Pergunta

Boa tarde galera... tenho hoje um script que faz upload de um unico arquivo, cria um tumb, coloca uma marca e transforma em png... porem agora gostaria de fazer com que ele fizesse uploads de varios arquivos de uma so vez... gostaria de uma ajuda, tentei com for, mas não consigo de jeito nenhum.

Segue meu codigo:

<?php
    $overlay = 'mascara.png';
    $trans_r = 255;
    $trans_g = 255;
    $trans_b = 255;
    $cache_fs = 'cache/';
    $cache_uri = 'http://localhost/upload_foto/cache/';
    

    $srid = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['REMOTE_PORT'] . time());
    $base_fs = $cache_fs . $srid;
    $base_uri = $cache_uri . $srid;

    if(!$overlay = imagecreatefrompng($overlay)) {
        $error = 'Erro ao abrir a máscara';
        $show = 'error';
    }
    else if(isset($_FILES[foto])) {    
        switch($_FILES[foto][type]) {                
            case 'image/jpeg':
            case 'image/pjpeg':
                $orig = imagecreatefromjpeg($_FILES[foto][tmp_name]);            
                break;
            case 'image/png':
                $orig = imagecreatefrompng($_FILES[foto][tmp_name]);
                break;
            case 'image/gif':
                $orig = imagecreatefromgif($_FILES[foto][tmp_name]);
                break;
            default:
                $error = 'Formato de arquivo inválido';
                $show = 'error';
        }
        
        if($orig) {
            $orig_x = imagesx($orig);
            $orig_y = imagesy($orig);
            $overlay_x = imagesx($overlay);
            $overlay_y = imagesy($overlay);
            $image_x = 800;//Largura da imagem grande
            $thumb_x = 150;//Largura da imagem pequena
            $image_y = round(($orig_y * $image_x) / $orig_x);
            $thumb_y = round(($orig_y * $thumb_x) / $orig_x);

                    //Posição da Máscara - Alinhado abaixo a esquerda
                    $offset_x = 0;
                    $offset_y = $image_y - $overlay_y;

            $image = imagecreatetruecolor($image_x, $image_y);
            imagecopyresampled($image, $orig, 0, 0, 0, 0, $image_x, $image_y, $orig_x, $orig_y);

            imagecolortransparent($overlay, imagecolorallocate($overlay, $trans_r, $trans_g, $trans_b));
            imagecopymerge($image, $overlay, $offset_x, $offset_y, 0, 0, $overlay_x, $overlay_y, 99);

            $thumb = imagecreatetruecolor($thumb_x, $thumb_y);
            imagecopyresampled($thumb, $orig, 0, 0, 0, 0, $thumb_x, $thumb_y, $orig_x, $orig_y);

            imagepng($image, $base_fs . '-grande.png');
            imagepng($thumb, $base_fs . '-pequena.png');

            $image_uri = $base_uri . '-grande.png';
            $thumb_uri = $base_uri . '-pequena.png';            
        }
        else {
            if(!$error)
                $error = 'Erro ao enviar a imagem';
                $show = 'error';
        }
        
        if(!isset($show))
            $show = 'result';
    }
    

    if($show == 'error') {
        echo "<h2>$error</h2>";
    } else if($show == 'result') {
        echo "<h2>Imagem Redimensionada</h2>";
        echo "<p><img src=\"$image_uri\"></p>";
        echo "<h2>Imagem Pequena</h2>";
        echo "<p><img src=\"$thumb_uri\"></p>";
    } else {
?>
<script>
function addRow() {
document.sendmessage.countx.value = parseInt(document.sendmessage.countx.value) + 1;
var i = parseInt(document.sendmessage.countx.value);
var table;
if (document.all)
table = document.all.uploadtable;
else if (document.getElementById)
table = document.getElementById('uploadtable');
if (table && table.rows && table.insertRow) {
var tr = table.insertRow(table.rows.length);
var td = tr.insertCell(tr.cells.length);
data = '<input type="file" name="foto" class="textboxgray" style="Font-Family:Arial; Font-Size:11px; Color:#AA0000;"><br>';
td.innerHTML = data;
}
}
</Script>
<form name="sendmessage" enctype="multipart/form-data" method="post" action="index.php">

<B><Font Color="#AA0000">Mais arquivos?:</Font></B> <input type="button" name="add" value=" + " class="textboxgray" onClick="java script: addRow()" style="Font-Family:Arial; Font-Size:11px; Color:#000000;">

<Hr>

<input type="hidden" name="countx" value="1">

<table border="0" cellspacing="1" cellpadding="2" id="uploadtable">
<tr>
<td>
<input type="file" name="foto" class="textboxgray" style="Font-Family:Arial; Font-Size:11px; Color:#AA0000;">
</td>
</tr>
</table>



<input type="submit" name="Submit" value="Upload" class="textboxgray" style="Font-Family:Arial; Font-Size:11px; Color:#000000;">

</form>
 <?}?>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...