---
title: "BLOB till fil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/16623-blob-till-fil"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Kim"
published: "2002-01-28T08:05:00.000Z"
updated: "2002-01-28T14:54:00.000Z"
replies: 4
views: 256
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/16623-blob-till-fil"
---

# BLOB till fil

## #1 — Kim, 2002-01-28T08:05Z

Jag har en mysql-databas med en tabell där en blob finns som i sin tur innehåller en bild. Kan man på något smidigt sätt kopiera innehållet i en blob till en fil som sedan ska ligga på servern? :q

Permalänk: https://www.webforum.nu/p/16623

## #2 — SPiN, 2002-01-28T11:27Z

Det borde gå. Försök något sånt här:

```
<?php
mysql_connect ( "server", "uid", "pwd" );
mysql_select_db ( "db" );
$result = mysql_query ( "SELECT picture FROM table WHERE id = 1" );
$row = mysql_fetch_array ( $result );
$data = $row [ 'picture' ];
mysql_close ();

$filePointer = fopen ( "theImage.jpg", 'w+' );
fputs ( $filePointer, $data, strlen ( $data ) );
fclose ( $filePointer );
?>
```

Bara något som poppade upp i huvudet, annars har jag ingen aning om hur man kan göra. Ett annat sätt är iofs att innan du stoppar in bilden göra om den till en ASCII-sträng, och sedan när du plockar ut den göra om den till binär innan du puffar in den i en fil.

Då skulle det kunna se ut nåt så här:
**Lägga in i databasen:**

```
<?php
$theImage = "C:\\Pictures\\theImage.jpg";

$filePointer = fopen ( $theImage, 'r' );
set_magic_quotes_runtime ( 0 );
$data = fread ( $filePointer, filesize ( $theImage ) );
set_magic_quotes_runtime ( get_magic_quotes_gpc () );
fclose ( $filePointer );

function bin2asc ( $temp ) {
&nbsp; $len = strlen ( $temp );
&nbsp; for ( $i=0; $i<$len; $i+=8 )
&nbsp; &nbsp; $result .= chr ( bindec ( substr ( $temp, $i, 8 ) ) );
&nbsp; return $result;
}

mysql_connect ( "server", "uid", "pwd" );
mysql_select_db ( "db" );
mysql_unbuffered_query ( "INSERT INTO table ( picture ) VALUES ( '" . bin2asc ( $data ) . "' )" );
mysql_close ();
?>
```

**Ta ut ur databasen:**

```
<?php
mysql_connect ( "server", "uid", "pwd" );
mysql_select_db ( "db" );
$result = mysql_query ( "SELECT picture FROM table WHERE id = 1" );
$row = mysql_fetch_array ( $result );
$data = $row[ 'picture' ];
mysql_close ();

function asc2bin ( $temp ) {
&nbsp; $len = strlen ( $temp );
&nbsp; for ( $i=0; $i<$len; $i++ )
&nbsp; &nbsp; $result .= sprintf ( "%08b", ord ( substr ( $temp, $i, 1 ) ) );
&nbsp; return $result;
}

$filePointer = fopen ( "theImage.jpg", 'w+' );
$binaryData = asc2bin ( $data );
fputs ( $filePointer, $binaryData, strlen ( $binaryData ) );
fclose ( $filePointer );
?>
```

Permalänk: https://www.webforum.nu/p/326067

## #3 — Kim, 2002-01-28T14:28Z

Jo, jag kom på det, men tack ändå! :)

Permalänk: https://www.webforum.nu/p/326068

## #4 — SPiN, 2002-01-28T14:40Z

Hur? Vilket? Var? :)

Hur gjorde du? Alltid intressant... :)

Permalänk: https://www.webforum.nu/p/326069

## #5 — Kim, 2002-01-28T14:54Z

Jag gjorde ungefär som du gjorde i ditt första exempel. :)

Permalänk: https://www.webforum.nu/p/326070

---

Tråden på webben: https://www.webforum.nu/amne/php/16623-blob-till-fil
