enviar imagem em MSSQL em campo Image

Gerenciador de Banco de dados relacional feito pela Microsoft SQL Server
Assista o vídeo    Busque no Youtube
tajiri
SUPER VETERANO
SUPER VETERANO
Mensagens: 293
Registrado em: Qua Jan 23, 2008 7:24 PM
Localização: Parana/curitiba/brasil
Contacto:

enviar imagem em MSSQL em campo Image

Mensagempor tajiri » Sex Abr 23, 2010 10:26 AM

agora que já entendi como funciona a inserção de imagem no banco de dados mysql, como faço para inserir em MSSQL em um campo datatype IMAGE, pelo que eu entendi temos que enviar em hexadecimais, eu procurei alguma coisa na net e encontrei alguns scripts a respeito, mas acho que os Hex estão sendo enviados de forma incorreta: ele insere no banco, mas na hora de verifica a imagem a imagem não aparece, e quando eu envio pelo gerenciador do mssql mananger ele insere corretamente. então o problema não é com o banco e sim coM o script que gera o HEX da imagem.

index.php

Código: Selecionar todos   Testar HTML   Testar PHP   Testar MySQL   Como Funciona

    <form action="ajax.php?pg=pessoa.foto.alt.upload&D1_CODIGO=<? echo $D1_CODIGO;?>" method="POST" enctype="multipart/form-data">
        Image Name:<br />
        <input name="name" type="text" value="" size="32" maxlength="50" /><br />
        Select Image file (*.jpg, *.gif, *.png) <br />
        <input type="file" name="image" value="" />
        <input type="submit" value="Upload" /><br />
    </form>

    <p><?php include("php-imageupload.php") ?></p>


php-imageupload.php

Código: Selecionar todos   Testar HTML   Testar PHP   Testar MySQL   Como Funciona

<?php
/**
 * Image Upload File
 * Uploads an image to MSSQL Server
 * Written by Raymond July 2008
 *
 * Credits goes to Cristiano:
 * Visit: http://php.net/manual/en/function.unpack.php#54910
 *
 */

// setup database connection
$dbserver = "000.000.000.000";
$dbuser = "user";
$dbpassword ="12345";

// Set  MSSQL text size & limit
// ranges from 0 - 2147483647.  Default to 4096.
//@ini_set("mssql.textsize",2147483647);      // make sure these values
//@ini_set("mssql.textlimit",2147483647);     // are set inside the php.ini (or php-isapi.ini) file  when using php4

/**
 * Get image file extension
 */
function getFileExtension( $name ){
   $namepart = explode(".", $name);
   $namepart = array_reverse($namepart);
   return $namepart[0];
}

// Image upload event handler
if (count($_POST)>0) {
   // Post back detected
   if(empty($_FILES['image']['tmp_name'])){
       echo "<strong>File not uploaded</strong>";
   }
   else {  // upload mode

      // get name and file type
      $name = str_replace('\'','',$_POST['name']);
      if (empty($name)) $name="imagefile";
      $fileType = getFileExtension($_FILES['image']['name']); // get file name
      $fileType = str_replace('\'','',$fileType);

      // check for valid extension (.jpg,.png,.gif)
      if(in_array($fileType,explode(',','gif,jpg,png,GIF,JPG,PNG'))){

            // get uploaded file content and convert it to hexadecimal
            $tmpFileName = $_FILES['image']['tmp_name'];
            $dataString = file_get_contents($tmpFileName);
            $arrData = unpack("H*hex", $dataString);



            // connect to the sql server
            if(!@mssql_connect($dbserver,$dbuser,$dbpassword)){
                echo "<strong>Error while connecting to database.</strong>";
            }
            else {
                // set SQL text size
//                mssql_query("SET TEXTSIZE 2147483647");
           //   mssql_query("delete from NOMEDOBANCO.dbo.PESSOAS_FIGURAS WHERE CODIGO='1'"); // remove existing records
               
            $sql = "insert into NOMEDOBANCO.dbo.PESSOAS_FIGURAS
                        (CODIGO,DESCRICAO,FIGURA) VALUES
                        ('1','3X4_3',$data)
                ";
                $rs = mssql_query($sql);
                if(!$rs){
                   echo "<strong>Error while save image. Please resubmit the image.</strong>";
                }
                else {
                   echo "<strong>Image has been inserted succesfully</strong>";
                }
            }
       }
       else {
           echo "<strong>Invalid image type. Only .gif, .jpg and .png files are allowed</strong>";
       }
   }
}

?>
0


OS MAIS RECENTES

COMENTÁRIOS
Ainda não há comentários. Seja o primeiro!

COMENTAR

Voltar para “SQL Server”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado

Rolar para o topo