enviar imagem em MSSQL em campo Image


Gerenciador de Banco de dados relacional feito pela Microsoft SQL Server.

Moderador: web

Logar para Responder
Logar para Perguntar

 enviar imagem em MSSQL em campo Image
Por tajiri 293 post(s) Offline SUPER VETERANO  Masculino 4p em 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
Selecionar - Numerar
    <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
Selecionar - Numerar
<?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 mais

0 resposta(s)

Resposta Rápida

   


 Busca Dinâmica

Clique em alguma palavra-chave para buscar, ou busque uma frase na caixa de pesquisa a seguir.

enviar imagem em MSSQL em campo Image






Logar para Responder
Logar para Perguntar




Voltar para SQL Server

Quem está online

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

cron