• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

A

Allegro

Здравствуйте, работодатель поставил задачу, загружать файлы, указанные пользователем в таблицу БД MSQ sql. поле типа Image. Как средствами PHP это реализовать?
просто текстовые данные вставляются:
Код:
$strSQL = "INSERT INTO vopr_files (id) value(100)";
$stmt = $dbconn->prepare($strSQL);
$stmt->execute();
Если же делать так:
Код:
$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();
то ничего не заносится в базу.
 
Последнее редактирование модератором:
V

vital

Код:
select BulkColumn FROM OPENROWSET (Bulk '".$_FILES["userfile"]["tmp_name"]."', SINGLE_BLOB) AS BLOB
а это точно надо?
Суньте туда просто переменную с картинкой да и все.
 
A

Allegro

Пробовал вот таким способом
Код:
$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();

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

vital

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!