0

我正在使用 Mysql 数据库和 PHP 做一个图片库 CMS。我是新手。

我有路径问题。

这是我的文件结构:this php doc - root/php/upload_portrait.php. 我的图像存储在这里 - root/images/portrait_gallery/

所以我添加了../保存图像的root/images/portrait_gallery/ 效果很好。

但在数据库中,url 与 ../ 一起存储,并且该路径不正确,因为它们是从根索引文件中调用的。所以没有图像显示。

如何删除数据库中的../on INSERT INTO

我试过替换和更新,但不知道怎么做。

这是我的代码

$portrait_url= $_FILES['upload'];

// 2. connect to database: 
include 'connect.php';

// 4. handle moving image from temp location to images folder (using the function billedupload)
$billedurl = billedupload($portrait_url);       
if($billedurl == false){        
    die("Something is wrong");
}

// 5. Insert imageupload in database:
$query = "INSERT INTO portrait (portrait_id, portrait_url) VALUES ('$portrait_id', '$billedurl')";
$result = mysqli_query($dblink, $query) or die( "Forespørgsel 2 kunne ikke udføres: " . mysqli_error($dblink) );

// 6. close connection
mysqli_close($dblink);

function billedupload($filearray){      
    if($filearray['type']=='image/jpeg' or $filearray['type']=='image/png'){
        $tmp_navn = $filearray['tmp_name'];             
        $filnavn = $filearray['name'];          
        $url = '../images/portrait_gallery/' . time() . $filnavn;           
        move_uploaded_file($tmp_navn, $url);            
    return $url;    
    } 
    else{           
        return false;       
    }   
}
4

2 回答 2

1

我相信你有两个选择。

  1. 更改 billed upload() 的 $url 行并删除 ../ 那里,因为您知道在阅读时不需要它。
  2. 更改从数据库读取的函数并删除 ../ 那里。

str_replace() 可能是您需要的功能,如之前的海报所述。

于 2012-12-26T18:42:18.107 回答
0

如果您只需要删除 '/..' - 那么,

str_replace是 PHP 中的一个函数,它允许您动态删除/更改部分字符串,因此,在您的代码中,

代替

$billedurl = billedupload($portrait_url);

$billedurl = str_replace('/..','',billedupload($portrait_url));

于 2012-12-26T18:38:59.620 回答