首页 > 解决方案 > 在上传到数据库之前和移动到目录之前,我如何替换或删除文件中的特殊字符?

问题描述

在上传到数据库之前和移动到目录之前,我如何替换或删除文件中的特殊字符?

这就是我所拥有的

$images = array();
$dt1=date("Y-m-d H:i:s");

foreach ($_FILES['images']['name'] as $key => $val) {

$file_name = $_FILES['images']['name'][$key];


$upload_dir = "pdfs/";
$upload_image = $upload_dir . $_FILES['images']['name'][$key];

if (move_uploaded_file($_FILES['images']['tmp_name'][$key], $upload_image)) {
$images[] = $upload_image;

$objetPdo = new PDO('mysql:host=localhost:3306;dbname=ifsi', 'root', '');


$pdoStat1 = $objetPdo->prepare('INSERT INTO pdfpublic VALUES(NULL ,:nomPdf,:pdf_file,:dateUpload)');

$pdoStat1->bindValue(':nomPdf', $_POST['NomPDF'], PDO::PARAM_STR);
$pdoStat1->bindValue(':pdf_file', $_FILES['images']['name'][$key], PDO::PARAM_STR);
$pdoStat1->bindValue(':dateUpload', date("Y-m-d H:i:s"), PDO::PARAM_STR);

$pdoStat1->execute();


}

}

标签: phppdo

解决方案


使用该str_replace功能替换您不想包含在文件名中的任何字符。

$objetPdo = new PDO('mysql:host=localhost:3306;dbname=ifsi', 'root', '');

foreach ($_FILES['images']['name'] as $key => $val) {

    //
    // Add or remove characters in the array below to change
    // what is or is not removed from the file name
    //
    $file_name = str_replace(array('-',' ','.','(',')',',','$','*'),'',$_FILES['images']['name'][$key]);

    $upload_image = 'pdfs/' . $file_name;

    if (move_uploaded_file($file_name,$upload_image)) {

        $images[] = $upload_image;

        $pdoStat1 = $objetPdo->prepare('INSERT INTO pdfpublic VALUES(NULL ,:nomPdf,:pdf_file,:dateUpload)');

        $pdoStat1->bindValue(':nomPdf', $_POST['NomPDF'], PDO::PARAM_STR);
        $pdoStat1->bindValue(':pdf_file', $file_name, PDO::PARAM_STR);
        $pdoStat1->bindValue(':dateUpload', date("Y-m-d H:i:s"), PDO::PARAM_STR);

        $pdoStat1->execute();

    }  // end of if move file worked

}  // end of foreach

推荐阅读