php - 在上传到数据库之前和移动到目录之前,我如何替换或删除文件中的特殊字符?
问题描述
在上传到数据库之前和移动到目录之前,我如何替换或删除文件中的特殊字符?
这就是我所拥有的
$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();
}
}
解决方案
使用该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
推荐阅读
- asp.net-core - Libman 在使用文件系统提供程序时从子目录而不是根目录复制文件夹
- c - 为什么一个简单的函数需要 repz ret?
- c++ - 如何在基类中将默认构造函数设为私有?
- shell - Docker:在容器中运行的 spigot 控制台上执行命令
- javascript - 如何使用 node-postgres (pg) 将此 JSONB 正确保存到 PostgreSQL 中?
- java - Java:将装饰类添加到现有实现
- mysql - 尽管能够通过 MySQL Workbench 连接,但 Docker 上的 MySQL “连接被拒绝”
- python - 在 Python 中包含 for 循环的函数中是否可以有多个条件?
- kubernetes - 在 Kubernetes 部署文件中生成动态密钥名称
- asp.net-core - 401 使用 Azure AD 在 .NET Core 3.1 中仅使用不记名令牌进行身份验证