как вставить изображение в Db как blob в ZendFramework - PullRequest
3 голосов
/ 04 августа 2009

Я хочу вставить изображение в формате BLOB в БД. Как написать программу в Zend Framework. простая форма Просто выберите одно изображение и вставьте в БД.

Ответы [ 3 ]

2 голосов
/ 04 августа 2009

В форме Zend создайте элемент файла:

$element = new Zend_Form_Element_File('fileElement');

Затем вы можете вставить загруженное изображение в вашу БД в формате BLOB следующим образом:

$conn = new PDO("mysql:host='host';dbname='database'", 'userName', 'password'); 

$imagePath = $zendForm->fileElement->getFileName(); 
$image = file_get_contents('$imagePath'); 

$sql = "INSERT INTO images (data) values(?)"; 

$q = $conn->prepare($sql); 
$q->bindParam(1, $image, PDO::PARAM_LOB); 
$q->execute(); 
2 голосов
/ 04 августа 2009

Прочитайте это как строку, используя file_get_contents и сохраните ее.

Тем не менее, это редко хорошая идея, чтобы сохранить фактические данные изображения в базе данных. Лучше создать уникальный файл и сохранить его в БД.

0 голосов
/ 06 февраля 2012

Вот код для сохранения файла в Zend:

// This is to save in saveAction()
$source = $this->view->form->upload->getFileName();
$fp = fopen($source,'r');
$content =   fread($fp,filesize($source));   
// I don't use addslashes, because i already have that in my mapper

fclose($fp); 

$model->image       = base64_encode($content);
// Save here


// This is to read in imagesAction()
$this->_helper->Layout()->disableLayout();
$this->_helper->ViewRenderer->setNeverRender();

header('Content-Type: image/gif');
echo base64_decode($image);     
exit;

У меня было много проблем с этим, попытайтесь заставить ваше сохранение работать и не вставляйте его в базу данных непосредственно, чтобы проверить чтение Это не будет возможно, если вы не знаете правильную кодировку БД (чего я не знаю).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...