jeg har forsøgt at lave noget kode, som hælder et billede ind i en mssql base. Det er ligner noget jeg har i brug mod mysql, men jeg kan ikke lige gennemskue hvad dælen der går galt her.
<? ini_set('magic_quotes_sybase','1'); // $auktion_connection = odbc_connect("auktion","sa","") OR DIE("Unable to connect to database");
$s = @mssql_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer"); $d = @mssql_select_db($myDB, $s) or die("Couldn't open database $myDB");
if (isset($_FILES['billede'])) { $filename = $_FILES['billede']['tmp_name']; if (is_uploaded_file($filename)) { print "$filename<br />"; $data = addslashes(fread(fopen($filename,"r"),filesize($filename))); $a=getimagesize($filename); $width=$a[0]; $height=$a[1]; $type=$_FILES['billede']['type'];
$sql= "INSERT INTO billeder (billede,width,height,filetype) values ('$data','$width','$height','$type')"; echo "$sql";
mssql_query($sql) OR DIE (mssql_error()); echo "Billedet er lagt op :)"; } else { echo "Possible file upload attack. Filename: " . $HTTP_POST_FILES['billede']['name']; } } ?>
Ved at undlade at indsætte billedet i binary feltet, så kommer resten af data ind i basen, så nu fungerer min connection (min fejl).
Nu er det bare hvordan skal billedet "forarbejdes" og hvordan skal feltet være sat i MSSQL serveren? lige nu står det til Binary med en størrelse på 1000. Altså 1mb.
der skulle være plads nok til mit lille testbillede på 60kb.
Det er stort set aldrig en fordel at indsætte binære filer i en database. Det gør din database håbløst tung og langsom at søge i. Nøjes med at lægge info om billedet i DB - og læg så billederne i en eller flere mapper på serveren. Det er en langt bedre approach ;o)
/mvh </bole>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.