Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 290
Localização: Parana/curitiba/brasil
Contato:

enviar imagem em MSSQL em campo Image

23-04-2010 10:26

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
<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
<?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

Quem está online

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