很多站长朋友们都不太清楚php中后台存储图片,今天小编就来给大家整理php中后台存储图片,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 数据库图片存储问题? 2、 在网站后台用户上传的图片如何获得图片路径存入数据库(mysql) (php解决) 急!!! 3、 php后台怎么将二进制存储的图片传送给前端 4、 php如何后台添加图片和文字.是一起添加的.然后从前台读出来.是把图片存数据库吗.如何记住图片所在的位置呢 5、 php怎么输出图片和存储图片? php 数据库图片存储问题?存储的是相对路径,可以到网站服务器上查看,应该有upload文件夹,里面就是存储的图片,这样写的好处是节省了数据库存储空间,转移的时候可以直接将整个服务器的图片打包转移。
访问的时候,前面可以拼接域名和指定的路径,这些后台可以轻松获取到,然后拼接上服务器的路径,我们就可以直接在网页上访问到图片了。
这是很常见的图片数据库保存方式,和直接把图片的二进制存入数据库,这样的方式便于检索,占用空间小。当然,目前主流都采用oss来单独存储文件了,就是有专门的文件服务器,这个时候,一般存储的是完整的图片路径。
在网站后台用户上传的图片如何获得图片路径存入数据库(mysql) (php解决) 急!!!文件上传后改名,并保存到指定的目录
这样一来路径不就来了吗
给个我以前写的一个例子给你看看吧,代码有点乱,将就着看吧,希望对你有点帮助。
if(isset($_FILES['upfile']) is_uploaded_file($_FILES['upfile']['tmp_name']))
{
$filesize = $_FILES['upfile']['size']; //得到文件大小
$upfile_type = $_FILES['upfile']['type']; //文件类型
$upfile_temp = $_FILES['upfile']['tmp_name']; //临时文件名
$upfile_name = $_FILES['upfile']['name']; //原文件名
$savePath = '/upload'; //文件保存目录
$fs = strrpos($upfile_name,'.');//得到文件名后缀 str right position
if( $fs === false ) {
error('提取扩展名失败!');
exit;
} else {
$fs = substr($upfile_name,$fs);
$fs = strtolower($fs);
}
//如:$fs(.jpg) => $ext(jpg)
$ext = substr($fs,1);
if(in_array($upfile_type,$sparr_image) || in_array( $ext,$sp_image) )
{//图片
$mediatype=1;
$savePath .= '/image/';
mymkdir(SITE_ROOT.$savePath);
} else if(in_array($ext,$sp_doc)){ //word/wps文档
$mediatype = 2;
$savePath .= '/doc/';
mymkdir(SITE_ROOT.$savePath);
} else if(in_array($ext,$sp_text)){ //文本文件
$mediatype = 3;
$savePath .= '/doc/';
mymkdir(SITE_ROOT.$savePath);
} else if(in_array($ext,$sp_rar)) { //压缩文件
$mediatype = 4;
$savePath .= '/rar/';
mymkdir(SITE_ROOT.$savePath);
} else if(in_array($ext,$sp_execl)){
$mediatype = 5;
$savePath .= '/doc/';
mymkdir(SITE_ROOT.$savePath);
}else {
error("上传文件失败!<br>所上传的文件类型不被允许!只允许上传图片、文档及压缩文件");
exit;
}
//构造新的文件名及完整路径(我这里用登陆时的验证码和时间做为文件名)
$savePath .= date('Y');
$filename = $_SESSION['checkcode'].time().$fs; //验证码、时间、扩展名
$fullpath = SITE_ROOT.$savePath; //得到完整路径
$url = $savePath.'/'.$filename; //$url就是你要保存到数据库的路径了
$fullfilename = SITE_ROOT.$url; //得到文件在磁盘上存储的完整路径
mymkdir($fullpath); //我自己写的函数,如果目录不存在则逐级创建目录
//移动文件
@move_uploaded_file($upfile_temp,$fullfilename);
if( !file_exists($fullfilename)) { //检测文件是否转移成功
error("文件上传失败!");
exit;
}
//将文件信息插入数据库
$msg = '文件上传成功!';
$f_name = trim($_POST['title']);
$f_name = substr($f_name,0,60);
if( isset($_POST['parent']) $_POST['parent'] != 0) {
$sql = 'INSERT INTO z_files (filename, url,type,parent,ext,size,upuser,uptime) VALUES ('.
sprintf("'%s','%s','%d','%d','%s','%d','%d',now())",$f_name,$url,$mediatype,intval($_POST['parent']),$ext,$filesize,$_SESSION['userid']);
} else {
$sql = 'INSERT INTO z_files (filename, url,type,ext,size,upuser,uptime) VALUES ('.
sprintf("'%s','%s','%d','%s','%d','%d',now())",$f_name,$url,$mediatype,$ext,$filesize,$_SESSION['userid']);
}
//执行sql查询($db对象是我自己写的一个数据库操作类)
if(!$db->query($sql)) {
error('文件信息插入数据库失败!'.$db->getLastError());
}
if( isset($_GET['mod']) $_GET['mod'] == 'd') {
echo '<script language="javascript" type="text/javascript">window.location="./?m=files=sfile";</script>';
} else {
message('./index.php?m=mediafile','文件信息插入数据库成功!', 1, $title='');
}
}
php后台怎么将二进制存储的图片传送给前端一般是直接提供资源的链接,他们使用即可。
二进制数据可以通过base64处理后传过去。
浏览器里可以通过 <img src="/data/upload/help/202303/02/647520c88292eee31c2a173ed7d1b9a2.">直接显示图片,
XXX表示图片内容base64_encode后的结果
php如何后台添加图片和文字.是一起添加的.然后从前台读出来.是把图片存数据库吗.如何记住图片所在的位置呢这个是记录的图片的额地址,如果是文字还有图片一起添加,建议你用个编辑器,比如fck这样的 实现你这样的很简单,如果你想自己写的话,也是可以实现的 不过都是存续的图片的地址,并不是把图片存到数据库中的
php怎么输出图片和存储图片?这里我要跟你说明一下,如果你在一个公司的话,公司的数据库 是绝对不会让你直接在数据库里面存储图片的,只会存储一个服务器的路径而已,所以你要先把图片路径输出出来 数据库图片类型 varchar
关于php中后台存储图片的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php中后台存储图片 php储存数据的方法的详细内容...