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

(Resolvido) Socorro!


cmdmss

Pergunta

Prezados colegas, bom dia.

Tenho aqui um sistema de cadastro de softwares no qual juntamente com os seus dados, adiciono um arquivo .jpg para ser visualizado na hora de consulta.

Fiz a parte de cadastro e a gravação do mesmo está funcionando perfeitamente, ele está transferindo o arquivo para o servidor conforme esperado.

Mas na parte de alteração, quando tento enviar um novo arquivo ao servidor, ele não está enchergando o arquivo por nada! Vou explicar melhor dano um exemplo.

Crio um novo software, adiciono as informações correspondentes e adiciono a foto. Efetuo o cadastro com sucesso, inlcusive a foto foi enviado ao servidor conforme esperado. Maravilha.

Agora, quando eu edito as informações do software que eu acabei de cadastrar, consigo alterar todas as informações normalmente, só que se tento adicionar uma nova foto, a mesma não é transferida para o servidor. Vou colocar aqui o codigo e mostrar o que já descobri.

Código onde modifico os campos e seleciono a nova foto.

Código que mostra os valores que estão gravados no banco de dados para modificação (sel_sw.php)

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
    background-color: #226CB2;
    background-image: url();
}
body,td,th {
    font-size: small;
}
-->
</style></head>

<body leftmargin="1" marginwidth="200">
<table width="800" height="324" border="1" align="center">
  <tr>
    <td height="137" bgcolor="#FFFFFF">
    
<?php
$num = $_POST["radio"];
$empresa = $_POST["empresa"];
$unidade = $_POST["unidade"];
$id_un = $_POST["id_un"];
$id_emp = $_POST["id_emp"];
require_once("conecta.php");
$qr = mysql_query("SELECT * from software WHERE id = $num ORDER BY id") or die (mysql_error());
while ($l = mysql_fetch_array($qr)){
    $nome = $l['nome'];
    $modelo = $l['modelo'];
    $serial = $l['serial'];
    $versao = $l['versao'];
    $tipo = $l['tipo'];
    $cm = $l['cm'];
}
?>

<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
     <script type="text/javascript">
     //Campo select da Empresa
   $(document).ready(function(){
      $("select[name=hardware]").change(function(){
       $("select[name=modelo]").html('<option value="0">Carregando...</option>');
        $.post("combo_modelo_hardwares.php",
         {hardware:$(this).val()},
         function(valor){ 
            $("select[name=modelo]").html(valor);
         }
         )
          

      })
   })    
   </script>

<h2>Cadastro de Hardware</h2>
        <hr>
        <form action="grava_software.php" method="post">
            <table border=0 width="100%">
                <tr height="20%">
                    <td colspan=2> &bull;Empresa:<b><? echo $empresa; ?></b> <br>&bull;Unidade:<b><? echo                    $unidade; ?></b><br><br></td></tr>
                <tr>
                    <td width=10%>Software:</td><td><select name="software"><option value="<? echo $nome ?>"><? echo $nome ?></option><option value="MHM">MHM</option><option value="Master Trend">Master Trend</option></select></td></tr>
<tr>
<td>Serial:</td><td><input type="text" name="serial" value="<? echo $serial ?>"></td></tr>
<tr>
<td>Modelo:</td><td><select name="modelo"><option value="<? echo $modelo ?>"><? echo $modelo ?></option><option value="Bronze">Bronze</option><option value="Bronze Plus">Bronze Plus</option><option value="Silver">Silver</option><option value="Gold">Gold</option><option value="Platinum">Platinum</option></select></td></tr>
<tr>
<td>Vers&atildeo;:</td><td><select name="versao"><option value="<? echo $versao ?>"><? echo $versao ?></option><option value="4.60">4.60</option><option value="4.61">4.61</option><option value="4.70">4.70</option><option value="4.80">4.80</option><option value="4.81">4.81</option><option value="4.90">4.90</option><option value="5.0">5.0</option><option value="5.1">5.1</option><option value="5.2">5.2</option><option value="5.3">5.3</option><option value="5.31">5.31</option><option value="5.4">5.4</option><option value="Outro">Outro</option></select></td></tr>
<tr>
<td>Sistema:</td><td><select name="tipo"><option value="<? echo $tipo ?>"><? echo $tipo ?></option><option value="Single user">Single User</option><option value="Network">Network</option></select></td></tr>
<tr>
<td>Venc. Garantia:</td><td><input type="text" name="cm" value="<? echo $cm ?>"></td></tr>
<tr>
<td>Tela da licença:</td><td><input type="file" name="tela"></td></tr>
<tr>
<td><input type=submit value="Gravar"></td></tr>

<input type=hidden value=<? echo "$num"; ?> name=id>

            </table>
        </form>
    
</td>
  </tr>
</table>
</body>
</html>
Arquivo que faz a gravção dos dados nobanco de dados(grava_softwre.php)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
    background-color: #226CB2;
    background-image: url();
}
body,td,th {
    font-size: small;
}
-->
</style></head>

<body leftmargin="1" marginwidth="200">
<table width="800" height="324" border="1" align="center">
  <tr>
    <td height="137" bgcolor="#FFFFFF">
<?php
$model = $_POST["modelo"];
$software = $_POST["software"];
$serial = $_POST["serial"];
$versao = $_POST["versao"];
$sistema = $_POST["tipo"];
$cm = $_POST["cm"];
$id = $_POST["id"];
$arquivo = isset($_FILES["tela"]) ? $_FILES["tela"] : FALSE;

if($arquivo)
{  
    // Verifica se o mime-type do arquivo é de imagem
    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";
            
    }
    // Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
    else
    {
        // Pega extensão do arquivo
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

        // Gera um nome único para a imagem
        $imagem_nome = $serial . "." . $ext[1];

        // Caminho de onde a imagem ficará
        $imagem_dir = "g:/vitek/informatica/apache2.2/htdocs/sgv/telas/" . $imagem_nome;

        // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
    }
    require_once("conecta.php");
    $sql2 = "UPDATE hardware SET tela ='$imagem_nome', WHERE id = $id";
    $mysql2=mysql_query($sql2) or die (mysql_error());    
}

require_once("conecta.php");
$sql = "UPDATE software SET nome = '$software',serial = '$serial',modelo = '$model',versao = '$versao', tipo = '$sistema',cm = '$cm' WHERE id = $id";
$mysql=mysql_query($sql) or die (mysql_error());
if ($mysql) echo '<br>Dados alterados com sucesso'; else echo '<br><br>Erro no cadastro';
mysql_close();
?>
</td>
  </tr>
</table>
</body>
</html>
O que descobri foi o seguinte. no sel_sw.php, tenho este campo
Tela da licença:<input type="file" name="tela">
que é onde busco a nova tela para ser enviado ao servidor. E no grava_software.php tenho o campo
$arquivo = isset($_FILES["tela"]) ? $_FILES["tela"] : FALSE;

onde deveria estar recebendo a foto para entrar na condição if($arquivo) e executar a ação de envio ao servidor, só que ele não está entrando deste if, por tanto ele não está recebendo a foto conforme esperado. Estou usando exatamente este mesmo procedimento para a gravação de um novo software e funciona rendondinho! :huh:

Será que alguém poderia me dar a luz no fim do tunel?

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Pode ser que sim, pode ser que não... depende do numero serial. O nome da imagem é o serial que o usuario digita em um dos campos. Mas eu fiz o teste de todas as formas possiveis, mudando o numero serial ou deixando o mesmo, e mesmo assim ele não está transferindo o arquivo. Ele não tá entrando na condição if($arquivo), ou seja, esta tendo algum problema pra buscar o arquivo...

Já também fiz o teste colocando o arquivo .jpg com o mesmo nome (serial), ele simplismente sobrepoe o que já esta gravado no servidor...

to quebrando a cabeça aqui pra descobrir mas ta osso!

Link para o comentário
Compartilhar em outros sites

  • 0

testado...não surtiu nenhum efeito.. =(

Fiz o comando print_r($_FILES)... está retornando Array ( ) .. ou seja.. nada!!!! Mas o porque disso acontecer? Acho q esta tudo certo....

fiz o comando print_r($_FILES) e retornou array()....ou seja, nada!!!

Mas porque?!?!?! Esta tudo certo;...!!!

Link para o comentário
Compartilhar em outros sites

  • 0

No sel_sw.php, substitui isso:

<form action="grava_software.php" method="post">
Por isso:
<form action="grava_software.php" method="post" enctype="multipart/form-data">

Certeza absoluta que esse era o problema!

-- Edição --

HAHAHA ESerra postou antes que eu! xD

Editado por Raphael Machado
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,7k
×
×
  • Criar Novo...