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

Extensão Do Arquivo


frnd

Pergunta

Posts Recomendados

  • 0

$_tamanho = $_FILES['arqfoto']['size'];

você quer limitar a extensão?

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

$_nomeArquivo = $_FILES['arquivo']['name'];

$_limitar = "sim";

$_ext = ($_nomeArquivo,'.');

$_extValidas = array(".gif",".jpg",".png",".etc");

if($_limitar == "sim" && !in_array($_ext,$_extValidas)) die ("Extensão de arquivo invalida para upload");

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

Link para o comentário
Compartilhar em outros sites

  • 0

oque significa esse erro?

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

está nesta linha

mysql_query("INSERT INTO informacao (idinformacao, tempo) VALUES ('', now())") or die "não foi possivel gravar na informacao";
Para facilitar: tenho o seguinte arquivo:
<?php

$titulo = $_REQUEST['titulo'];
$endereco = $_REQUEST['endereco'];
$desc = $_REQUEST['desc'];
$tel = $_REQUEST['tel'];
$maxpartic = $_REQUEST['maxpartic'];
$data = $_REQUEST['data'];
$hr = $_REQUEST['hr'];
$arqfoto = $_FILES['arqfoto'];
$arqfotonome = $_FILES['arqfoto']['name'];
$arqfototipo = $_FILES['arqfoto']['type'];
$arqfototamanho = $_FILES['arqfoto']['size'];

//se existir o arquivo
if(strpos($arqfototipo, 'jpg') || strpos($arqfototipo, 'jpeg') || strpos($arqfototipo, 'gif') || strpos($arqfototipo, 'bmp') && ($arqfototamanho <=50000000)){

$arquivo = $_FILES["arqfoto"];
//pega a extensao do arquivo
$extensao  = $arqfotonome;
$arrayextensao = explode(".", $extensao);
$extensaoarq = $arrayextensao[2];

//diretorio dos arquivos
$pasta_dir = "./egressos_sist/paginas/midia/foto/";

//associa o nome do arquivo juntamente com o caminho dado acima
$caminho = $pasta_dir . $arquivo["name"];
// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $arquivo_nome);
//conecta no banco
require_once("../biblioteca/connectmysql.php");

mysql_query("INSERT INTO informacao (idinformacao, tempo) VALUES ('', now())") or die "não foi possivel gravar na informacao";

$idinfo = mysql_insert_id();
//insere os dados de evento na tabela eventos
mysql_query("INSERT INTO evento (idinformacao, descricao, endereco, telcontato, maxparticipantes, tempoevento, tempoinscricao, titulo) 
                    VALUES ($idinfo, '$desc', '$endereco', '$tel', '$maxpartic', '$hr', now(),'$titulo')") or die "não foi possivel gravar na evento";

$idevento = mysql_insert_id();
//aqui salva primeiramente na tabela de midia(pai de onde a tabela foto é herdada)
mysql_query("INSERT INTO midia VALUES ($idinfo, '$url', '$arqfoto', '$extensaoarq', '$tamanho', now())") or die "não foi possivel gravar na midia";
$idmidia = mysql_query("select max(idmidia) from midia order by idmidia"); 
//insere na tabela midiaevento (tabela N para N)
mysql_query("INSERT INTO midiaevento VALUES($idevento, $idmidia)") or die  "não foi possivel gravar na midiaevento";

$idmidia = mysql_insert_id();
//aqui salva no banco o path da foto
mysql_query("INSERT INTO foto VALUES ($idmidia , '$arqfotonome', '$caminho', '$extensao', '$arqfototamanho', now()") or die "não foi possivel gravar na foto";

require_once("../biblioteca/closemysql.php");
    echo "<script language='JavaScript'>";
    echo "window.alert('Evento cadastro com sucesso!');";
    echo "</script>";
}
else 
{
    echo "<script language='JavaScript'>";
    echo "window.alert('Não foi possível cadastrar o evento!');";
    echo "</script>";
}
?>
mas aparece esse erro Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\egressos_sist\paginas\upload.php on line 34 nesta linha
mysql_query("INSERT INTO informacao (idinformacao, tempo) VALUES ('', now())") or die "não foi possivel gravar na informacao";

Link para o comentário
Compartilhar em outros sites

  • 0

esse SQL eu testei no banco e funciona certinho. Mesmo com '' não funciona... idinfo é auto incremento

[]s

coloquei

mysql_query("INSERT INTO informacao (idinformacao, tempo) VALUES ('', 'now()')") or die "não foi possivel gravar na informacao";

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\egressos_sist\paginas\upload.php on line 42

Link para o comentário
Compartilhar em outros sites

  • 0
esse SQL eu testei no banco e funciona certinho. Mesmo com '' não funciona... idinfo é auto incremento

[]s

coloquei

mysql_query("INSERT INTO informacao (idinformacao, tempo) VALUES ('', 'now()'[color="#FF0000"][b])[/b][/color]") or die "não foi possivel gravar na informacao";

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\egressos_sist\paginas\upload.php on line 42

Eu não uso mensagem de erro. No caso eu uso assim:

$sql = "INSERT INTO informacao (idinformacao, tempo)VALUES('', now())";

$sql = mysql_query($sql);

Mas se você utiliza a mensagem de erro, pode utilizar assim:

mysql_query("INSERT INTO informacao (idinformacao, tempo) VALUES ('', now())") or die ("não foi possivel gravar na informacao");

Testa aí amigo. Abraço! ;)

Editado por Geleiaskt
Link para o comentário
Compartilhar em outros sites

  • 0

Agora funcionou.. era só tirar aquela linha do 'or die..'

estou fazendo algo assim

$arqfoto = $_FILES['arqfoto'];
$arqfotonome = $_FILES['arqfoto']['name'];
$arqfototipo = $_FILES['arqfoto']['type'];
$arqfototamanho = $_FILES['arqfoto']['size'];

echo "$arqfototipo";  
echo "<br>";
echo "$arqfotonome";
echo "<br>";
echo "$extensaoarq";
echo "<br>";
echo "$arqfototamanho";
O resultado é somente: Sample_Picture04.jpg 0 veja que o nome do arquivo vem, e mais um valor aí, o 0, mas o resto não aparece! porque? []s no html eu passo
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
                <td class="label">Carregar arquivo:</td>
                <td><input type="file" class="campodata" name="arqfoto"></td>
coloquei
echo filesize($arqfoto);
para obter o tamanho do arquivo e retornou um erro na mesma linha Warning: filesize() [function.filesize]: stat failed for Array Bom, o filesize pega o tamanho do arquivo só quando ele for carregado! estou fazendo outra coisa mas não traz nada no resultado:
$foto_temp = $_FILES["arqfoto"]["tmp_name"]; 


echo "NOME TEMPORÁRIO NO SERVIDOR = ".$foto_temp."<br>";

Resultado assim:

NOME TEMPORÁRIO NO SERVIDOR =

Link para o comentário
Compartilhar em outros sites

  • 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="../biblioteca/estilo/estilo.css" type="text/css" />
</head>
<head>
<title>Egressos</title>
</head>
<body>
<div id="site"> 
  <?php include_once("../biblioteca/administrador/topo.php"); ?>
  <div class="conteudo2"> 
    <?php include_once("../biblioteca/esquerdoAdmin.php"); ?>
    <?php include_once ("../biblioteca/direitologado.php"); ?>
    <div class="ConteudoMeio"> 
      <div class="CaixaLocalizacao"> 
        <div class="Localizacao"> <a href="../index.php">Home</a> 
          >> <b>Cadastro de Eventos</b> </div>
      </div>
      <div class="CaixaMeio"> 
        <div class="ConteudoCxMeio2"> 
          <form enctype="multipart/form-data" action="upload.php" class="formCad2" id="formCad2" name="formCad2" method="post">
            <table class="TabelaDadosCad">
              <tr> 
                <td class="label">Título:</td>
                <td> <input type="text" class="camponome" name="titulo"> </td>
              </tr>
              <tr> 
                <td class="label">Descrição:</td>
                <td> <input type="text" class="camponome" name="desc"> </td>
              </tr>
              <tr> 
                <td class="label">Endereço:</td>
                <td> <input type="text" class="camponome" name="endereco"> </td>
              </tr>
              <tr> 
                <td class="label">Máximo de participantes:</td>
                <td><input type="text" class="campodata" name="maxpartic"> </td>
              </tr>
              <tr> 
                <td class="label">Data:</td>
                <td><input type="text" class="campodata" name="data"></td>
              </tr>
              <tr> 
                <td class="label">Horário:</td>
                <td><input type="text" class="camporg" name="hr"></td>
              </tr>
              <tr> 
                <td class="label">Telefone:</td>
                <td><input type="text" class="camporg" name="tel"></td>
              </tr>
              <tr> 
              <input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
                <td class="label">Carregar arquivo:</td>
                <td><input type="file" class="campodata" name="arqfoto"></td>
              </tr>
              <!--tr> 
                <td class="label">Carregar vídeo:</td>
                <td><input type="file" class="campodata" name="arqvideo"></td>
              </tr-->
               <tr> 
              <td colspan="2"><br> 
                <input type="submit" name="cadastrar" value="" class="btnCad"> 
                <input type="reset" name="limpar" value="" class="btnLimpar"> </td> 
            </tr> 
            </table>
          </form>
        </div>
      </div>
    </div>
  </div>
  <?php  include_once ("../biblioteca/base.php"); ?>
</div>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Claro que não, o count/sizeof retornar o número de elementos de alguma coisa (no caso um array), então você tem que usar o explode para dividir o nome no ponto e ai contar quanto elemento resultaram, se for mais de dois é porque no meio do nome do arquivo tem algum ponto, se for igual a dois é porque só tem o ponto que separa o nome da extensão...

Link para o comentário
Compartilhar em outros sites

  • 0

Não... o PONTO é onde será dividida a string, ele mesmo vai desaparecer, por exemplo:

$nome = "doumento.html";
$dividir = explode('.',$nome);
/*
$dividir[0] vai ser o documento
$dividir[1] vai ser o html
*/
Dá pra fazer algo assim...
$divisao = explode('.', $arqnome);
$elementos = count($divisao)
if ($elementos == 2){
//Aqui é se não tiver PONTO no nome do aquivo
}else{
//Aqui é se tiver PONTO no nome do arquivo (por exemplo: meu.documento.especial.txt)
}

Link para o comentário
Compartilhar em outros sites

  • 0

Hum.. deixa eu ver se eu entendi. Eu tenho uma string 'documento.html' e faço com que ele mostra somente os '.', por isso uso o explode. Daí uso o count para contar a quantidade de pontos da string? É isso?

Se eu quiser fazer com que se ele achar 2 pontos ele pegar o último ponto e ler oque tem depois dele(no caso seria pegar a extensao)?

Editado por frnd
Link para o comentário
Compartilhar em outros sites

  • 0

Tenha um pouco de boa vontade, OLHA só o que eu escrevi.

PONTO é onde será dividida a string, ele mesmo vai desaparecer

$nome = "doumento.html";
$dividir = explode('.',$nome);
/*
$dividir[0] vai ser o documento
$dividir[1] vai ser o html
*/

Agora olha o exemplo, eu já coloquei ATÉ o que vai retornar, você vê algum PONTO no retorno? Depois do explode o que for "explodido" desaparece e a string é repartida no ponto da "explosão"... ou seja no exemplo acima depois de usar o explode no documento.html só vai existir DOIS ítens no array, 1->documento, 2->html... NADA de PONTO... que só serviu para dizer onde eu queria...

Agora como pegar o último ítem do array, que vai ser a extensão? Vejamos, o count SEMPRE vai retornar um número que é maior +1 em relação ao índice do array, ou seja, no exemplo acima o array tem os índices 0 e 1, só que o count retorna 2, então o último ítem do array sempre vai ser o que o count retornar -1... (experimente raciocinar, é bom...), mas só pra você ver, se o usuário quiser te sacanear ele vai mandar um arquivo chamado m.e.u.a.r.q.u.i.v.o.h.t.m.l, e ai essa verificação que você quer fazer também não vai funcionar, porque o último ítem do array vai ser o l...

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