【发布时间】:2020-04-16 02:00:42
【问题描述】:
我有一个表 t1 有两列 id 和 name 我想在一列中插入文件名
<input type="file" name="files[]" multiple></br>
<input type="submit" name="submit" value="ADD">
表格
id | name
1 | e1.jpg, e2.jpg, ....
我试过了
if (isset($_POST['submit'])) {
$output = '';
if(is_array($_FILES))
{
foreach ($_FILES['files']['name'] as $name => $value)
{
$file_name = explode(".", $_FILES['files']['name'][$name]);
$allowed_ext = array("jpg", "jpeg", "png", "gif");
if(in_array($file_name[1], $allowed_ext))
{
$new_name = md5(rand()) . '.' . $file_name[1];
$sourcePath = $_FILES['files']['tmp_name'][$name];
$targetPath = "picem/".$new_name;
$sql = "INSERT INTO phem (userid, username, img, date) VALUES
('$id_user','$user','{$targetPath}','$myDate')";
$image = mysqli_query($conn,$sql);
if(move_uploaded_file($sourcePath, $targetPath))
{
}
}
}
}
}
但此代码会将每个文件插入一行
【问题讨论】:
-
每个文件一行更好。请参阅:"Is storing a delimited list in a database column really that bad?" 您应该使用参数化查询。请参阅:"How can I prevent SQL injection in PHP?" 如果您关心完整性,您应该考虑将内容存储在数据库中,而不仅仅是 DBMS 无法控制的路径。
-
良好的代码缩进将帮助我们阅读代码,更重要的是它将帮助您调试您的代码 Take a quick look at a coding standard 为您自己的利益。您可能会被要求在几周/几个月内修改此代码,最后您会感谢我的。
标签: php html mysql database mysqli