PHP 上传/下载存储在数据库中的imge类型数据(图片)

//上传扫描件(图片以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();
        }

        //获取表格的大小,限制上传表格的大小5M
        $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;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_39494923/article/details/79955983