这篇文章介绍的内容是关于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();
}
//获取表格的大小,限制上传表格的大小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;
}
}
以上就是php 上传/下载存储在数据库中的imge类型数据(图片)的详细内容。
