Intereting Posts
Отправьте данные формы html в базу данных sql через php (используя mysqli) Добавление процентной доли дисконта к переменной продукции в продаже Проблема с PHP связана с файловыми системами с учетом регистра Расстояние Левенштейна: как лучше обрабатывать слова, заменяющие позиции? Как получить длину самой длинной строки в массиве Одновременное выполнение нескольких скриптов PHP (проблема с циклом базы данных) Количество записей в DB PHP Ошибка simplexml_load_file в PHP 5.3 Прямой доступ к серверной базе данных через Ajax (без PHP или какого-либо другого промежуточного уровня) Каковы риски безопасности, позволяющие всем символам URL-адреса веб-сайта? Единичный тест для издевательства метода, вызванного новым объектом класса Расчет времени в php (добавить 10 часов)? Strtotime () не работает с форматом dd / mm / YYYY PHP MySQL – добавление строки в середине цикла Убедитесь, что WooCommerce address_field_1 содержит номер дома перед порядком обработки

mysqli image blob insert не работает

Я пытаюсь загрузить файл изображения в свою базу данных MySql. Я уже seacrh в Интернете, и я, наконец, начал использовать следующий скрипт:

if(is_uploaded_file($_FILES['filename']['tmp_name'])){ $maxsize=$_POST['MAX_FILE_SIZE']; $size=$_FILES['filename']['size']; // getting the image info.. $imgdetails = getimagesize($_FILES['filename']['tmp_name']); $mime_type = $imgdetails['mime']; // checking for valid image type if(($mime_type=='image/jpeg')||($mime_type=='image/gif')||($mime_type=='image/png')){ // checking for size again if($size<$maxsize){ $filename=$_FILES['filename']['name']; $imgData =addslashes (file_get_contents($_FILES['filename']['tmp_name'])); if(is_uploaded_file($_FILES['filename']['tmp_name'])){ debug('subida ok'); }else{ debug('fallo subida'); } //echo $imgData; $imgDetail=addslashes($imgdetails[3]); $db = new mysqli('127.0.0.1','user','pass', 'db'); if($db->connect_error){ debug('Error en la conexion : '.$db->connect_errno. '-'.$db->connect_error); } $stmt = $db->stmt_init(); $stmt->prepare("INSERT INTO `image` (`name`, `image`, `type`, `size`) VALUES (?, ?, ?, ?)"); if($stmt===false){ debug('Error en prepare');} $rc=$stmt->bind_param('sbss', $filename, $imgData, $mime_type,$imgDetail); if($rc===false){ debug('Error en bind');} if($stmt->execute()==false){ debug('error ' . $stmt->error); }; $stmt->close(); }else{ debug("<font class='error'>Image to be uploaded is too large..Error uploading the image!!</font>"); } }else{ debug("<font class='error'>Not a valid image file! Please upload jpeg or gif image.</font>"); } }else{ switch($_FILES['filename']['error']){ case 0: //no error; possible file attack! debug("<font class='error'>There was a problem with your upload.</font>"); break; case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini debug( "<font class='error'>The file you are trying to upload is too big.</font>"); break; case 2: //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form debug( "<font class='error'>The file you are trying to upload is too big.</font>"); break; case 3: //uploaded file was only partially uploaded debug( "<font class='error'>The file you are trying upload was only partially uploaded.</font>"); break; case 4: //no file was uploaded debug( "<font class='error'>You must select an image for upload.</font>"); break; default: //a default error, just in case! debug( "<font class='error'>There was a problem with your upload.</font>"); break; } } 

Загруженное изображение, похоже, находится на выходе сценария ухода, но просмотр размера базы данных – 0 байт … Кто-нибудь знает, почему это?

mysqli SEND_LONG_DATA () !!!

http://php.net/manual/en/mysqli-stmt.send-long-data.php

Blobs, кажется, особенно расстраивает некоторые настройки сервера php / mysql (особенно с mysqli lib). Это решение, похоже, постоянно работает, когда настройки конфигурации не позволяют устранить проблему. Если его головная боль для повторной реализации, я бы предложил PDO.