Heim >Backend-Entwicklung >PHP-Tutorial >PHP lädt/lädt Bildtypdaten (Bilder), die in der Datenbank gespeichert sind

PHP lädt/lädt Bildtypdaten (Bilder), die in der Datenbank gespeichert sind

不言
不言Original
2018-04-16 10:47:191433Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem Hochladen/Herunterladen von in der Datenbank gespeicherten Bilddaten. Jetzt kann ich ihn mit Ihnen teilen.

//上传扫描件(图片以img数据类型存入数据中)
function mod_addPhoto()
{
    global $row_User;    
    global $mssql_connection;    
    if ($_FILES['myfile']['error'] > 0) {
            $back = array(            
            'message' => 'error',            
            'date' => '文件错误'        
            );        
            echo json_encode($back);        
            exit();    
            } else {        
            //判断是否选择了要上传的表格        
            if (empty($_POST['upfile'])) {
                       $back = array(                
                       'message' => 'error',                
                       'date' => '上传文件不能为空'            
                       );            
                       echo json_encode($back);            
                       exit();        
                       }        
                       //获取表格的大小,限制上传表格的大小5        
                       $file_size = $_FILES['myfile']['size'];        
                       if ($file_size > 100 * 1024 * 1024) {
                                   $back = array(                
                                   'message' => 'error',                
                                   'date' => '文件大小不能超过5M'            
                                   );            
                                   echo json_encode($back);            
                                   exit();        
                                   }        
                                   //获取文件参数        
                                   $imgfile = $_FILES['myfile'];        
                                   $name = $imgfile['name'];   //取得图片名称        
                                   $type = $imgfile['type']; //取得图片类型        
                                   $size = $imgfile['size'];  //取得图片长度       
                                    $tmpfile = $imgfile['tmp_name'];  //图片上传上来到临时文件的路径        
                                    $file = fopen($tmpfile, 'rb');        
                                    $content = fread($file, $size);        
                                    $content = "0x" . bin2hex($content);        
                                    fclose($file);        
                                    //限制上传表格类型        
                                    $file_type = $_FILES['myfile']['type'];        
                                    $file_type=substr($file_type, 6);        
                                    //获取当前时间        
                                    date_default_timezone_set('PRC');        
                                    $now_time = date('Y-m-d H:i:s', time());        
                                    //保存到数据库        
                                    $OAV_ID = $_GET['OAV_ID'];        
                                    $OVA_ID = create_ID("OA_VehicleAttach");       
                                     global $mssql_connection;        
                                     if (!$mssql_connection) {            
                                     $mssql_connection = open_mssqlconn();        
                                   }        
                                   $sfu_id = $row_User['SFU_ID'];        
                                   $sql1 = "INSERT INTO OA_VehicleAttach (OAV_ID, OVA_ID,OVA_Name, OVA_Date, OVA_Type, OVA_Size, OVA_Data, OVA_User)
                                    VALUES ('$OAV_ID', '$OVA_ID', '$name','$now_time','$file_type',$file_size, $content,'$sfu_id' )";        
                                    $sql = iconv("utf-8", "gbk", $sql1);   
                                    //PHP使用UTF-8编码。SQL Server 2008使用默认的GBK编码  在执行查询语句之前将查询语句及所要插入的数据转化为GBK编码。        
                                    $cursor = sqlsrv_query($mssql_connection, $sql);        
                                    $aa = sqlsrv_rows_affected($cursor);        
                                    if ($aa) {            
                                    $back = array(                
                                    'message' => 'success',               
                                     'date' => '文件上传成功'            
                                     );            
                                     echo json_encode($back);            
                                     exit();        
                                     } else {           
                                     $back = array(              
                                     'message' => 'fail',               
                                     'date' => '文件上传失败'            
                                     );            
                                     echo json_encode($back);            
                                     exit();        
                                     }    
                                     }
                                     }




//下载扫描件
function  mod_down_scanning_copy()
{
    $id = $_GET['OVA_ID'];    
    //$id = getGP('OAV_ID', 'G');    
    $sql = "SELECT OVA_ID,OAV_ID,OVA_Name,OVA_Data,OVA_User,OVA_Size FROM OA_VehicleAttach where OVA_ID='" . $id . "'";    
    $cursor = mssqlquery($sql);    
    $row = sqlsrv_fetch_array($cursor, SQLSRV_FETCH_ASSOC);    
    if(isset($row['OVA_Name'])){       
     $filename=$row['OVA_Name'];        
     $filedata=$row['OVA_Data'];        
     $filesize=$row['OVA_Size'];    
     }   
     // $binaryStr = base64_decode($filedata); 
     //   file_put_contents($filename, $binaryStr);    
     $filePath = 'download/' . $filename;    
     $file = fopen($filePath, "w");//打开文件准备写入    
     fwrite($file, $filedata);//写入    
     fclose($file);//关闭
     //    header("content-disposition:attachment;filename=".$filename);
     //    header("content-length:".$filesize);
     //    readfile($filedata);    
     if(file_exists($filePath)){        
     header("Content-type:application/octet-stream");        
     header("Content-Disposition:attachment;filename = ".$filename);        
     header("Accept-ranges:bytes");        
     header("Content-length:".$filesize);        
     readfile($filePath);    
     }
}
//SQL查询
function mssqlquery($Q)
{
    global $mssql_connection;    
    if (!$mssql_connection) {        
    $mssql_connection = open_mssqlconn();   
     }    
     $Q = iconv("utf-8", "gbk", $Q);    
     $cursor = sqlsrv_query($mssql_connection, $Q);    
     if (!$cursor) {        
     echo "SQL查询出错.\n";        
     die(print_r(sqlsrv_errors(), true));    
     }    
     return $cursor;
     }
//获取数据库连接
$mssql_connection = '';
function open_mssqlconn()
{
    global $mssql_connection;
    //    global $MSSQL_SERVER;
    //    global $connectionInfo;    
    $MSSQL_SERVER = "DESKTOP-CA04H1Q\SQLEXPRESS";    
    $connectionInfo = array("Database" => "ToncentHuaJie", "UID" => "用户名", "PWD" => "密码");    
    if (!$mssql_connection) {        
    $mssql_link = sqlsrv_connect($MSSQL_SERVER, $connectionInfo);
    //            sqlsrv_query("set NAMES GBK");        
    if (!$mssql_link) {            
    echo "Could not connect.\n";            
    die(print_r(sqlsrv_errors(), true));       
     }        
     return $mssql_link;    
     } else {        
     return $mssql_connection;    
     }
     }


Das obige ist der detaillierte Inhalt vonPHP lädt/lädt Bildtypdaten (Bilder), die in der Datenbank gespeichert sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn