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

Upload de arquivos não funciona


ThiagoAS

Pergunta

Boa tarde pessoal,

estou com o seguinte problema. Estou tentando fazer o upload de arquivos, mas as informações do arquivo não estão sendo enviadas.

Todas as informações são enviadas normalmente, com exceção do upload.

Segue trecho que está dando este problema no form:

<form id="form_abre_chamado" method="post" enctype="multipart/form-data" action="abre_chamado.php" title="Abertura de Chamado" >


<tr>
   <td><label for="up_arquivo">Upload Arquivo</label>
 </tr>                            
 <tr>
   <td>
      <input type="file" name="up_arquivo" id="up_arquivo"/>
   </td>
</tr>
Página da action:
$uploaddir = '../uploads/';
$uploadfile = $uploaddir . $_FILES['up_arquivo']['name'];

var_dump($_FILES);

if (move_uploaded_file($_FILES['up_arquivo']['tmp_name'], $uploadfile)){
   echo "Arquivo Enviado";
}
else {
   echo "Arquivo não enviado"; 
}

Como vocês podem ver, tentei executar um var_dump. O retorno foi somente:

array(0) {

}

Aparece também a mensagem: Notice: Undefined index: up_arquivo in <b>C:\xampp\htdocs\[...]

Já verifiquei o php.ini e está ativado o upload de arquivos.

Já tentei vários arquivos, de diferentes tamanhos, e o problema é o mesmo.

Já chequei todas as tags para certificar se estavam fechando.

Fiquei um bom tempo pesquisando e nada. Alguém poderia me ajudar, ou dar uma luz, por favor?

Atenciosamente,

Thiago

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Amigo acho que o erro não é no código fonte não

pois executei o seu código em minha maquina e retorno os dados do arquivo normalmente

array(5) {

["name"]=>

string(40) "01 She Wolf (Falling to Pieces) [fea.m4a"

["type"]=>

string(11) "audio/x-m4a"

["tmp_name"]=>

string(31) "C:\EasyPHP-12.1\tmp\php3A3F.tmp"

["error"]=>

int(0)

["size"]=>

int(8185254)

}

<?php
if($_FILES)
{
    echo "<pre>";
    var_dump($_FILES['up_arquivo']);
    echo "</pre>";
}
?>
<form id="form_abre_chamado" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>" title="Abertura de Chamado" >


<tr>
   <td><label for="up_arquivo">Upload Arquivo</label>
</tr>                            
<tr>
   <td>
      <input type="file" name="up_arquivo" id="up_arquivo"/>
   </td>
</tr>
<input type="submit"/>
</form>

creio que deve ser algum problema com seu servidor de paginas

Link para o comentário
Compartilhar em outros sites

  • 0

Tente fazer algo mais "simples" e 'avançado" ao mesmo tempo... por exemplo, um uploader somente de imagens que só tem em uma pagina.

<?

// Prepara a variável caso o formulário tenha sido postado
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

$config = array();
// Tamano máximo da imagem, em bytes
$config["tamanho"] = 10006883;
// Largura Máxima, em pixels
$config["largura"] = 7392;
// Altura Máxima, em pixels
$config["altura"] = 8408;
// Diretório onde a imagem será salva
$config["diretorio"] = "fotos/";

// Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..
// Função Recursiva
function nome($extensao)
{
    global $config;

    // Gera um nome único para a imagem
    $temp = substr(md5(uniqid(time())), 0, 10);
    $imagem_nome = $temp . "." . $extensao;
    
    // Verifica se o arquivo já existe, caso positivo, chama essa função novamente
    if(file_exists($config["diretorio"] . $imagem_nome))
    {
        $imagem_nome = nome($extensao);
    }

    return $imagem_nome;
}

if($arquivo)
{
    $erro = array();
    
    // Verifica o mime-type do arquivo para ver se é de imagem.
    // Caso fosse verificar a extensão do nome de arquivo, o código deveria ser:
    //
    // if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) {
    //      $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; }
    //
    // Mas, o que ocorre é que alguns usuários mal-intencionados, podem pegar um vírus .exe e simplesmente mudar a extensão
    // para alguma das imagens e enviar. Então, não adiantaria em nada verificar a extensão do nome do arquivo.
    if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))
    {
        $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
    }
    else
    {
        // Verifica tamanho do arquivo
        if($arquivo["size"] > $config["tamanho"])
        {
            $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo";
        }
        
        // Para verificar as dimensões da imagem
        $tamanhos = getimagesize($arquivo["tmp_name"]);
        
        // Verifica largura
        if($tamanhos[0] > $config["largura"])
        {
            $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
        }

        // Verifica altura
        if($tamanhos[1] > $config["altura"])
        {
            $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
        }
    }

    if(!sizeof($erro))
    {
        // Pega extensão do arquivo, o indice 1 do array conterá a extensão
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
        
        // Gera nome único para a imagem
        $imagem_nome = nome($ext[1]);

        // Caminho de onde a imagem ficará
        $imagem_dir = $config["diretorio"] . $imagem_nome;

        // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
    }
}
?>
<html>
<head>
<title>Enviar Foto</title>
<style type="text/css">
.by {background-image:http://henriqueperez.ueuo.com/teste/host/fotos/dd61a87802.png}
BODY, TD {font-family: verdana; font-size: 10pt;}
body {
    background-image: url();
}
body,td,th {
    color: #666666;}
    
.send {
    -moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
    -webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
    box-shadow:inset 0px 1px 0px 0px #ffffff;
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
    background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
    background-color:#ededed;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #dcdcdc;
    display:inline-block;
    color:#777777;
    font-family:arial;
    font-size:15px;
    font-weight:bold;
    padding:6px 34px;
    text-decoration:none;
    text-shadow:1px 1px 0px #ffffff;
}.send:hover {
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
    background:-moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
    background-color:#dfdfdf;
}.send:active {
    position:relative;
    top:1px;

}
.style1 {font-size: 9pt}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body link=red vlink=red alink=red>
<div align="center"><?
// Imagem foi enviada com sucesso, mostra mensagem de SUCESSO
if($arquivo && !sizeof($erro))
{
    echo "<img src=\"" . $imagem_dir . "\" border=0><BR><BR>Imagem enviada.<br>Quer enviar outra? <a href=\"foto.php\">Clique aqui</a>";
}

// Ocorreu algum erro ou ainda o formulário não foi postado
else
{
?>
</div>
<form action="<?echo $PHP_SELF?>" method=post  ENCTYPE="multipart/form-data">
  <table border=0 cellpadding=2 cellspacing=1 align=center>
<?
if(sizeof($erro))
{
    echo "<tr><td colspan=2 bgcolor=red><B><U>Erro:</u><BR>";
    foreach($erro as $err)
    {
        echo " - " . $err . "<BR>";
    }
    echo "</B></td></tr>";
}
?>
<tr>
  <td width="329" align=center>Envie uma imagem! 
    <input type=file size=30 name=foto></td>
  <td width="8" align=center>&nbsp;</td>
</tr>
<tr><td align=center><input type=submit class="send" value="Enviar!"></td>
  <td align=center>&nbsp;</td>
</tr>
</table>
</form>
<p align="center">
  <? } ?>
</p>
<p align="center">&nbsp;</p>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...