enviar imagem em MSSQL em campo Image    Perguntar    Responder    Entrar    Cadastre-se    Topo    Fechar

enviar imagem em MSSQL em campo Image

Gerenciador de Banco de dados relacional feito pela Microsoft SQL Server

Moderador: web

  Assista o vídeo    Busque no Youtube
tajiri
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 290
Registrado em: 23-01-2008 19:24
Localização: Parana/curitiba/brasil
Contacto:

enviar imagem em MSSQL em campo Image

Mensagempor tajiri » 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

BUSCA RÁPIDA

enviar imagem em MSSQL em campo Image

Voltar para “SQL Server”

Rolar para o topo