PHP通过保存路径到数据库来实现图片的上传功能,但存的是相对路径,怎么转成绝对路径?

SL_Shuai 2020-09-24 06:36:49

<?php
//1.获取上传文件信息
$upfile=$_FILES["pic"];
$upfile2=$_FILES["pic2"];
//定义允许的类型
$typelist=array("image/jpeg","image/jpg","image/png","image/gif");
$path="./upfiles/";//定义一个上传后的目录
//2.过滤上传文件的错误号
if($upfile["error"]>0){
switch($upfile['error']){//获取错误信息
case 1:
$info="上传得文件超过了 php.ini中upload_max_filesize 选项中的最大值.";
break;
case 2:
$info="上传文件大小超过了html中MAX_FILE_SIZE 选项中的最大值.";
break;
case 3:
$info="文件只有部分被上传";
break;
case 4:
$info="没有文件被上传.";
break;
case 5:
$info="找不到临时文件夹.";
break;
case 6:
$info="文件写入失败!";break;
}die("上传文件错误,原因:".$info);
}
if($upfile2["error"]>0){
switch($upfile2['error']){//获取错误信息
case 1:
$info2="上传得文件超过了 php.ini中upload_max_filesize 选项中的最大值.";
break;
case 2:
$info2="上传文件大小超过了html中MAX_FILE_SIZE 选项中的最大值.";
break;
case 3:
$info2="文件只有部分被上传";
break;
case 4:
$info2="没有文件被上传.";
break;
case 5:
$info2="找不到临时文件夹.";
break;
case 6:
$info2="文件写入失败!";break;
}die("上传文件错误,原因:".$info2);
}
//3.本次上传文件大小的过滤(自己选择)
if($upfile['size']>2000000){
die("上传文件大小超出限制");
}
if($upfile2['size']>2000000){
die("上传文件大小超出限制");
}
//4.类型过滤
if(!in_array($upfile["type"],$typelist)){
die("上传文件类型非法!".$upfile["type"]);
}
if(!in_array($upfile2["type"],$typelist)){
die("上传文件类型非法!".$upfile2["type"]);
}
//5.上传后的文件名定义(随机获取一个文件名)
$fileinfo=pathinfo($upfile["name"]);//解析上传文件名字
do{
$newfile=date("YmdHis").rand(1000,9999).".".$fileinfo["extension"];
}while(file_exists($path.$newfile));
$fileinfo2=pathinfo($upfile2["name"]);//解析上传文件名字
do{
$newfile2=date("YmdHis").rand(1000,9999).".".$fileinfo2["extension"];
}while(file_exists($path.$newfile2));
//6.执行文件上传
//判断是否是一个上传的文件
if(is_uploaded_file($upfile["tmp_name"])){
//执行文件上传(移动上传文件)
if(move_uploaded_file($upfile["tmp_name"],$path.$newfile)){
if(move_uploaded_file($upfile2["tmp_name"],$path.$newfile2)){
echo "文件上传成功!";

include('config.php');
//将图片的名称和路径存入数据库
$sql = "INSERT INTO image3(path,path_t) VALUES ('$path$newfile','$path$newfile2')";
$result = mysqli_query($conn,$sql);
if($result){
echo"文件已存储到数据库";
} else {
echo"请求失败,请重试";
}
} else {
die("上传文件失败!");
}
}else{
die("不是一个上传文件!");
}
}
?>


$path="./upfiles/"就是图片要保存的目录,这里我只能用相对路径,用绝对路径"/upfiles/"会报错,找不到路径,然后数据库里面保存的路径也会是相对路径,我想着在存库的时候转成绝对路径的格式,请问大佬们,该怎么转?
...全文
44 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
你存储的时候 可以用 $sql = "INSERT INTO image3(path,path_t) VALUES ('".trim($path, '.').$newfile."','".trim($path, '.').$newfile2."')"; 还有你这代码重复的太多了,你不觉得嘛。可以提出来放到一个函数里面去。
回复
到服务器上看下 pwd
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告