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

Upload


Ejungles

Pergunta

Olá

Seguinte, fiz uma página de upload na qual o usuário poderá enviar qualquer arquivo, no entanto, determinadas extenções não são enviadas (ex.: ppt, pps)

Já peguei exemplos (inclusive deste site) e a situação não se altera.

Tanto no host do cliente, quanto no meu próprio servidor.

O que possa ser ?

Alguém sabe como resolver isso ?

Agradeço desde já

Abraço

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Você tem várias maneiras de fazer isso, no caso você terá que checar qual tipo de arquivo usando a extensão do mesmo... então, use $_FILES["userfile"]["type"] para descobrir que tipo de arquivo é e dai se esse arquivo está nos "excluídos", pode usar if/else para isso.

Link para o comentário
Compartilhar em outros sites

  • 0

ESerra

Eu consigo pegar todos os valores do arquivo... o problema é na hora de enviar...

Eu estava testando agora o codigo que peguei no site "br.php.net/copy", porém não funciona

Segue meu código

--------------------------------------

$file = $_FILES['txtFile'];

$Nome = $file['name'];

$Tamanho = $file['size'];

$Tipo = $file['type'];

$Tmpname = $file['tmp_name'];

$Caminho = "../" . $Destino . $Nome;

$extensao = substr($Nome, -3);

if (copy($file, $Caminho)){

//salvo os dados e retorno ok e redireciono

}

else{

// retorno erro

}

--------------------------------------

O problema não está para pegar as informações e sim na hora do envio (copy)

Antes eu estava usando "move_uploaded_file", mas sem sucesso

Será que o problema está no servidor ?

O host é pago e plano php

Link para o comentário
Compartilhar em outros sites

  • 0

Afinal você quer restringir os tipos de arquivos possíveis para download ou não sabe enviar arquivos pro servidor?

E tem mais um detalhe nesse seu script

$extensao = substr($Nome, -3);

Ele vai pegar os últimos 3 caracteres do nome, mas e se a extensão for jpeg ou html ou outras que têm 4 caracteres? think about...

Para enviar arquivos use o seguinte:

Formulário

<?php
echo "
<form enctype='multipart/form-data' action='action.php' method='POST'>
<input type='hidden' name='MAX_FILE_SIZE' value='30000000'>
Enviar o arquivo: <input name='userfile' type='file'>
<input type='submit' value='Enviar Arquivo'>
</form>";
?>
action.php
<?php
// Nas versões anteriores a 4.1.0, $HTTP_POST_FILES deve ser usado ao invés de $_FILES.
// Nas versões anteriores a 4.0.3, use copy() e is_uploaded_file() ao invés move_uploaded_file


$uploaddir = 'testedeup/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
   print "O arquivo é válido e foi carregado com sucesso. Informações:\n";
   print_r($_FILES);
} else {
   print "Possível ataque! Informações:\n";
   print_r($_FILES);
}
print "</pre>";

?>

Link para o comentário
Compartilhar em outros sites

  • 0

ESerra

Agora enviou... sabe deus o que era, porque ficou exatamente como antigamente... mas beleza... a unica coisa que ele não envia arquivos grandes... 2... 3Mb.... tem alguma forma de aumentar o tempo limite ???

Outra coisa, existe alguma maneira de pegar a extensão do arquivo ???

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

No meu primeiro post eu disse que $_FILES["userfile"]["type"]; pega o tipo de arquivo... com o tipo de arquivo da tabela mime você consegue descobrir qual a extensão do arquivo, por exemplo jpeg/jpg/jpe vai retornar como tipo image/pjpeg (apenas no IE) ou image/jpeg (qualquer navegador).

set_time_limit(0); faz com que o script não tenha timeout...

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,3k
    • Posts
      652,6k
×
×
  • Criar Novo...