我在使用PHP上传文件时遇到问题。我需要在db中保存文件的位置,但它不起作用。另外,我想将文件重命名为等于时间戳+用户名。我将用户名存储在变量中。
但最重要的是,如何将文件的位置发布到数据库?
现在,我正在将文件上传到服务器上的文件夹,但我不能做的是将文件的位置保存为数据库中的字符串。我希望以后能够引用该文件,但不知道如何保存文件的位置以供以后使用。
$ext_img_2 = end(explode(".", $_FILES["img_2"]["name"]));
if ((($_FILES["img_2"]["type"] == "image/gif") || ($_FILES["img_2"]["type"] == "image/jpeg") || ($_FILES["img_2"]["type"] == "image/png") || ($_FILES["img_2"]["type"] == "image/pjpeg")) && ($_FILES["img_2"]["size"] < 6291456) && in_array($ext_img_2, $allowedExts))
{
if ($_FILES["img_2"]["error"] > 0)
{
echo "Return Code: " . $_FILES["img_2"]["error"] . "<br>";
}
else
{
if (file_exists("AdImg2/" . $_FILES["img_2"]["name"]))
{
echo $_FILES["img_2"]["name"] . " already exists. " . "<br>";
}
else
{
move_uploaded_file($_FILES["img_2"]["tmp_name"], "AdImg2/" . $_FILES["img_2"]["name"]);
mysql_query("INSERT INTO data (img_2) VALUES ('AdImg1/".$_FILES['img_1']['name']."')";
echo "Stored in: " . "AdImg2/" . $_FILES["img_2"]["name"] . "<br>";
}
}
}
else
{
echo "Invalid File" . "<br>";
}
答案 0 :(得分:0)
我建议您为上传的文件使用唯一名称(使用uniqid http://php.net/manual/fr/function.uniqid.php之类的功能),并在需要时使用原始文件扩展名。 例如:
$name = uniqid() . '.' . pathinfo($filename, PATHINFO_EXTENSION);
$name = time() . '.' . pathinfo($filename, PATHINFO_EXTENSION); // For timestamp
然后,您执行巡回测试并执行:
$path = 'uploadedFilesDir/' . $name;
move_uploaded_file($_FILES["img_2"]["tmp_name"], $path);
mysql_query('INSERT INTO data(...) VALUES ("' . $path . '")');
简单(注意目录权限,php可能无法在目录中写入)。