如何将多张图片添加到MySQL数据库?

3

我有一个表单,可以选择多个文件上传到文件夹。我只需要找到如何使用PHP将它们插入到数据库中即可。

HTML表单

<form name="demoFiler" id="demoFiler" enctype="multipart/form-data">
<input type="file" name="multiUpload" id="multiUpload" multiple />
<input type="submit" name="submitHandler" id="submitHandler" value="Upload" class="buttonUpload" />
</form>

PHP代码

if($_SERVER['REQUEST_METHOD'] == "POST"){
    if(move_uploaded_file($_FILES['file']['tmp_name'], "uploads/".$_FILES['file']['name'])){
        echo($_POST['index']);
    }
    exit;
}

这是我的代码,首先我无法将文件移动到上传文件夹中:

<?php

$username = "root";
$password = "";
$host = "localhost";
$database = "db_holiday";

// Make the connect to MySQL or die
// and display an error.
$link = mysql_connect($host, $username, $password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

// Select your database
mysql_select_db ($database);

if($_SERVER['REQUEST_METHOD']=="POST")
{
    foreach ($_FILES['multiUpload']['name'] as $fileName) { 
        $uploaddir= '/upload/';
    $uploadfile = $uploaddir . basename($fileName);
        if (move_uploaded_file($fileName, $uploadfile)) {
            echo "File is valid, and was successfully uploaded.\n";
        } else {
            echo "Possible file upload attack!\n";
        }
    }
}

?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="multiUpload[]" id="multiUpload" multiple="multiple" />
<input type="submit" name="button"/>
</form>

3
这取决于您希望如何保存图像?您想将其保存为全局变量、服务器上某个文件的路径或者图像经过 base64 编码的形式吗?我个人会为每个上传创建一个唯一的文件夹,并将路径与图像在数据库中关联。 - thescientist
2个回答

4

HTML:

<input type="file" name="multiUpload[]" id="multiUpload" multiple />

php:

foreach ($_FILES['multiUpload'] as $fileName) { 
    //write your code here
    //$fileName
}

0

使用2个input type="file"元素

<input type="file" name="img_1" />
<input type="file" name="img_2" />

使用以下方式访问每个文件

$_FILES['img_1'][];
$_FILES['img_2'][];

或者你也可以使用类似数组的方式

<input type="file" name="img[]" />
<input type="file" name="img[]" />
<!--Which is often used in checkboxes-->

使用以下方式访问每个图像

$_FILES['img']['tmp_name'][0];
$_FILES['img']['tmp_name'][1];

这个答案没有提到循环,而在讨论“许多”图像时循环确实是必需的。 - Tom van der Woerdt
@TomvanderWoerdt,这就不能理解吗?我的意思是现在我们需要喂食吗? - Mr. Alien
逐字翻译并不好,我同意。但是,提到循环并不会立即使它变得不好。从被问的问题来看,这个人在 PHP 方面没有太多经验,他可能会手动编写索引为 0 到 X 的代码。 - Tom van der Woerdt
终于自己找到了解决方案....我只是在文件名上犯了一个简单的错误,导致无法将其插入数据库。终于完成了...谢谢大家!!感激不尽! P.S. 对于那些认为我试图被喂养的人表示歉意!! - Dikshant Ghimire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接