Jump to content
Fórum Script Brasil
  • 0

Extensão Do Arquivo


frnd

Question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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! ;)

Edited by Geleiaskt
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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)?

Edited by frnd
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...