загрузка файла в поле Image базы данных на MS sql server

Тема в разделе "PHP программирование", создана пользователем Allegro, 7 окт 2016.

  1. Allegro

    Allegro Модератор

    Регистрация:
    29 авг 2007
    Сообщения:
    17
    Симпатии:
    1
    Здравствуйте, работодатель поставил задачу, загружать файлы, указанные пользователем в таблицу БД MSQ sql. поле типа Image. Как средствами PHP это реализовать?
    просто текстовые данные вставляются:
    Код (Text):
    $strSQL = "INSERT INTO vopr_files (id) value(100)";
    $stmt = $dbconn->prepare($strSQL);
    $stmt->execute();
     
    Если же делать так:
    Код (Text):
    $strSQL = "INSERT INTO vopr_files (id, files_varb) value (10, select BulkColumn FROM OPENROWSET (Bulk '".$_FILES["userfile"]["tmp_name"]."', SINGLE_BLOB) AS BLOB) ";
    $stmt = $dbconn->prepare($strSQL);
    $stmt->execute();
     
    то ничего не заносится в базу.
     
    #1 Allegro, 7 окт 2016
    Последнее редактирование: 7 окт 2016
  2. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Код (Text):
    select BulkColumn FROM OPENROWSET (Bulk '".$_FILES["userfile"]["tmp_name"]."', SINGLE_BLOB) AS BLOB
    а это точно надо?
    Суньте туда просто переменную с картинкой да и все.
     
  3. Allegro

    Allegro Модератор

    Регистрация:
    29 авг 2007
    Сообщения:
    17
    Симпатии:
    1
    Пробовал вот таким способом
    Код (Text):
    $cnt = count($_FILES['userfile']['name']);
    $cont=null;
    if($cnt > 0) {
        for($i = 0; $i < $cnt; ++$i) {      
            if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0){
                $fileName = $_FILES['userfile']['name'][$i];
                $tmpName  = $_FILES['userfile']['tmp_name'][$i];
                $fileSize = $_FILES['userfile']['size'][$i];
                $fileType = $_FILES['userfile']['type'][$i];

                //считываем содержания файла
                $fp      = fopen($tmpName, 'r');
                $content = fread($fp, filesize($tmpName));
                $cont = ($cont)."con".addslashes($content);          
                fclose($fp);
         
                if(!get_magic_quotes_gpc()){
                    $fileName = addslashes($fileName);
                    $cont = addslashes($cont);
                   
                if ($stmt = $dbconn->prepare("INSERT INTO vopr_files(id, files_varb) VALUES(14, $cont)")){
                    echo "Загружено ";
                }else{
                    echo "Ошибка загрузки ";
                }
                $stmt->execute();

                   
                }
            }          
        }
               
    }
    тоже не срабатывает.
     
  4. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Код (Text):

    if(!get_magic_quotes_gpc()){
     
    Перестаньте читать книжки начала 2000х готов. Уберите эту дренвюю хрень и пользуйтесь актуальной версией пхп(7). Этой фичи нету уже пару лет в языке.
    А ошибки какие-то пишет? в еррор лог смотрели? ексепшены отлавливали? последнюю ошкибку из бд доставали?
    $cont = addslashes($cont); - то что тут картинка проверяли?
     
Загрузка...

Поделиться этой страницей