gpt4 book ai didi

php - 将多个文件上传到 mySQL 然后添加到 Session

转载 作者:行者123 更新时间:2023-11-30 00:13:32 25 4
gpt4 key购买 nike

好吧,解释一下我想要实现的目标,我希望用户能够在没有多个文件输入字段的情况下进行多个文件上传(特别是图像),所以我使用了 <input type="file" multiple="multiple" name="files[]">在我的页面中。

以下是我的 PHP:

session_start();
include('connect.php');

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$tbl_name="Pictures"; // Table name

if(isset($_POST['submit'])) {
if(isset($_FILES['files'])){
$errors= array();
$files = array();

for($i=0; $i<count($_FILES['files']['name']); $i++) {
$tmpFilePath = $_FILES['files']['tmp_name'][$i];
$file_name = $i.$_FILES['files']['name'][$i];
$file_size =$_FILES['files']['size'][$i];
$file_tmp =$_FILES['files']['tmp_name'][$i];
$file_type=$_FILES['files']['type'][$i];

$desired_dir="images";
$random_digit=rand(0000,9999);

if ($tmpFilePath != ""){
$newFilePath = "images/" . $random_digit . $_FILES['files']['name'][$i];
}

if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
} else {
move_uploaded_file($tmpFilePath, $newFilePath);
}

$files = array($newFilePath);
$_SESSION['files'] = $files;
}
}
}

所以,当前正在做的是将文件添加到我的目录中,该目录工作正常,我已经这样做了,以便文件之前有一个随机数以避免重复,因为将会上传很多文件。它正在上传多个文件,但我接下来要做的是转到下一页,该页面将根据已上传的文件数量打印出许多文本输入字段,这允许用户为每个文件添加标题。然后,一旦提交,每个文件及其标题将被插入到 mySQL 数据库中。

我想到的最简单的方法是将每个 $newFilePath (这是每个图像的文件路径)上传到一个数组中。我尝试了这个并使用以下方法打印数组:

foreach($files as $f) {
echo $f . '<br>';
}

仅显示上传的第一个文件,而不是所有文件。我很乐意将数组添加到 $_SESSION 中,以便我可以在另一页上使用它们,但一旦我对其进行排序,可能可以在一页上完成所有操作。有什么想法吗?

最佳答案

$files = array($newFilePath);

应该是

$files[] = $newFilePath;

您将能够直接将数组添加到 session 数据中:

$_SESSION['files'] = $files;

关于php - 将多个文件上传到 mySQL 然后添加到 Session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23852205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com