gpt4 book ai didi

php - 上传的文件在数据库中显示为数组,并且用户 ID 未保存

转载 作者:行者123 更新时间:2023-11-30 01:28:08 26 4
gpt4 key购买 nike

想知道您是否可以提供帮助?

我目前正在编写一个允许管理员将文件上传到服务器的脚本。文件上传时,它会从表单中获取信息并将其存储在数据库中,以便稍后允许有权限的用户下载。

我已经成功制作了表格:

Select File To Upload
<div style="width:100%; margin:5px;">
<form action="uploadclientfile.php" method="post" enctype="multipart/form-data" name="upload" style="margin:5px;">
<label> File</label><br /><br />
<input name="uploaded_file" type="file" class="input-xlarge" required/>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" /><br /><br />
<label>Select Users Who Can Download The File</label><br /><br />
<select name="users[]" multiple="multiple" style="width:300px">
<?php
$useruploadids = mysql_query("SELECT member_id, firstname, lastname FROM members");
while ($row = mysql_fetch_assoc($useruploadids)) {
$user_id = $row['userid'];
$firstname = $row['firstname'];
$lastname = $row['lastname'];
?>
<option value=""<?php echo $user_id ?>"><?php echo $firstname ?><?php echo $lastname ?></option>
<?php } ?>
<input name="Upload" type="submit" value="Upload" class="btn" />
</form>

因此,这将创建一个多选框,其中包含数据库中的所有用户,以便在需要时选择多个用户。它调用他们的用户 ID 的名字和姓氏。但它不显示用户 ID。这很好。

下一个文件是上传文件,我遇到的问题是在数据库中。它不会记录所选的用户 ID,并且文件名始终以数组形式出现。尽管它确实正确保存了文件位置。

知道出了什么问题吗?

<?php 

$target = "clientfiles/";
$target = $target . basename( $_FILES['uploaded_file']['name']);

$userid=$_POST['users[]'];
$file=($_FILES['uploaded_file']);

mysql_connect("localhost", "username", "password") or die(mysql_error()) ;
mysql_select_db("database") or die(mysql_error()) ;



mysql_query("INSERT INTO `cfiles` VALUES ('$userid', '$file', '$target')") ;


if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']). " has been uploaded, and your information has been added to the directory";
}
else {
echo "Sorry, there was a problem uploading your file.";
}
?>

有什么线索吗?

感谢您的阅读

最佳答案

鉴于您允许用户使用表单符号[]选择多个userid,以下$userid=$_POST['users[]'] ; 将是一个数组。给定 $userid 是一个数组,当您将其存储为字符串时,将存储值 Array() 而不是实际的 user_id 值。如果数据库表字段 user_id 的类型为 INT,则 Array() 的字符串值甚至无法存储,它将导致 0。

如果您的目标是存储多个值,转换为多个记录,您应该迭代 $user_id 数组并按如下方式存储它们

foreach ($userid as $id) {
mysql_query("INSERT INTO `cfiles` VALUES ('$id', '$file', '$target')")
}

关于php - 上传的文件在数据库中显示为数组,并且用户 ID 未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17760694/

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