За последние 24 часа нас посетили 17227 программистов и 1646 роботов. Сейчас ищут 1726 программистов ...

Не получается сделать upload файла из html формы в MSSQL

Тема в разделе "MSSQL", создана пользователем Vasya_pupkin1957, 7 окт 2016.

  1. Vasya_pupkin1957

    Vasya_pupkin1957 Новичок

    С нами с:
    7 окт 2016
    Сообщения:
    1
    Симпатии:
    0
    Добрый день, уважаемые!
    Есть одна небольшая проблема, с которой бьюсь уже неделю, не могу добавить файл в mssql(так надо, требует руководство, я бы с радость хранил файлы на серваке и не добавлял их в бд). Файлы, кстати любые, будь то фотка или документ вордовский или pdf или gif.

    Напишу параметры сервака:
    1. ms sql server 2008
    2. php 5.3.3

    Собственно в чем загвоздка, поле в которое хочу передать файл, имеет тип VARBINARY(MAX), пробовал и тип IMAGE, все равно не добавляет. Cам передаваемый файл я могу видеть посредством var_dump в бинарном виде, то есть он передается, но не добавляется в бд. Еще пробовал так, если я в эти поля не передаю файлы, а передаю просто какую-нибудь надпись, то она соответственно добавляется в бинарном виде, НО, стоит мне эту надпись обромить в кавычки, то она не добавляется, т.е. запись в бд вообще не создается.

    Прилагаю сам код...
    Форма отправки:
    HTML:
    1. <form action="add_server.php" method="post" enctype="multipart/form-data">
    2.         <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
    3.         <input name="userfile[]" type="file" id="userfile" multiple="multiple">
    4.         <input name="upload" type="submit" id="upload" value=" Upload ">
    5.     </form>
    Файл add_server.php обработчик :

    PHP:
    1. $dbconn = new PDO("odbc:NameServer", "login", "pass");
    2.  
    3. $cnt = count($_FILES['userfile']['name']);
    4. $cont=null;
    5. if($cnt > 0) {
    6.     for($i = 0; $i < $cnt; ++$i) {      
    7.         if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0){
    8.             $fileName = $_FILES['userfile']['name'][$i];
    9.             $tmpName  = $_FILES['userfile']['tmp_name'][$i];
    10.             $fileSize = $_FILES['userfile']['size'][$i];
    11.             $fileType = $_FILES['userfile']['type'][$i];
    12.  
    13.             //считываем содержания файла
    14.             $fp      = fopen($tmpName, 'r');
    15.             $content = fread($fp, filesize($tmpName));
    16.             $cont = ($cont)."con".addslashes($content);          
    17.             fclose($fp);
    18.                
    19.             if(!get_magic_quotes_gpc()){
    20.                 $fileName = addslashes($fileName);
    21.                 $cont = base64_encode($cont);          
    22.             }  
    23.            
    24.         }
    25.  
    26.             //var_dump($cont);
    27.             if ($stmt = $dbconn->prepare("INSERT INTO table(id, files_varbinary) VALUES(15, $cont)")){
    28.                 echo "Загружено ";
    29.             }else{
    30.                 echo "Ошибка загрузки ";
    31.             }
    32.             $stmt->execute();  
    33.             var_dump($stmt);      
    34.     }
    35.            
    36. }
    Помогитеее!! Как добавить файл?? Что я делаю не так???