mysql - php - 在INSERT上删除url的第一部分

时间:2012-12-26 18:33:15

标签: php mysql url file-upload

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

我有路径问题。

这是我的文件结构: 这个php doc - root/php/upload_portrait.php。 我的图片存储在此处 - root/images/portrait_gallery/

所以我添加了../以保存root/images/portrait_gallery/中的图片 这很好。

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

如何删除数据库中的../上的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;       
    }   
}

2 个答案:

答案 0 :(得分:1)

我相信你有2个选择。

  1. 更改结果上传()的$ url行并删除../,因为您知道在阅读时不需要它。
  2. 更改从数据库中读取的函数并删除../那里。
  3. str_replace()可能是您需要的功能,如前一张海报所述。

答案 1 :(得分:0)

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

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

替换

$billedurl = billedupload($portrait_url);

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