我想让用户上传图片。该文件被重命名(通过将time()添加到当前名称),然后移动到我的Images /文件夹。然后我在我的html / php代码中引用上传到数据库表中的名称。由于表中的名称与实际文件名不同,因此不会显示图像。如果两个用户上传了具有相同名称的文件,则需要更改映像名称。如何将time()名称更改应用于表中的文件名和实际文件名,以便显示图像。这是我的代码:
if (!empty($_FILES['picture']))
{
$pic= $_FILES['picture']['name'];
$target= GW_UPLOADPATH . time() . $pic;
if (move_uploaded_file($_FILES['picture']['tmp_name'], $target))
{
$query= "INSERT INTO posts (user_id, story, picture) VALUES
('$user_id', '$story', '$pic')";
mysqli_query($connect, $query);
header( 'Location: profile.php' );
}
}
表中的图片名称只是ball.jpg,实际文件可能是18292018ball.jpg。
答案 0 :(得分:1)
试试这个
$query= "INSERT INTO posts (user_id, story, picture)
VALUES ('$user_id', '$story', '$target')";
答案 1 :(得分:1)
你不应该在你的MySql查询中使用'$ target'而不是'$ pic'吗?
$query= "INSERT INTO posts (user_id, story, picture) VALUES ('$user_id', '$story', '$target')";
答案 2 :(得分:1)
注意:如果您要添加time()
作为前缀,那么两张图片将永远不会相同
当您更改文件名时,为什么不将该新名称存储在db
中$changed_name = time().$pic;
$query= "INSERT INTO posts (user_id, story, picture) VALUES
($user_id, '".$story."', '".$changed_name ."')";
_
答案 3 :(得分:0)
无需每次都存储上传路径,除非在不同的时间点可能会有所不同。
$name = time() . $pic;
$target= GW_UPLOADPATH .$name;
$query= "INSERT INTO posts (user_id, story, picture) VALUES
('$user_id', '$story', '$name')";
答案 4 :(得分:0)
确切地说没有任何欺骗行为:
答案 5 :(得分:0)
您在数据库中存储的文件名与您保存的文件名不同。如果你只想使用文件名,在将文件附加到路径之前将文件存储在变量中,即代替
$target= GW_UPLOADPATH . time() . $pic;
做
$fileName = time() . $pic;
$target = GW_UPLOADPATH . $fileName;
并在SQL查询中使用$ fileName代替$ pic:
$query= "INSERT INTO posts (user_id, story, picture) VALUES ('$user_id', '$story', '$fileName')";
答案 6 :(得分:0)
如果所有路径(例如图像/文件夹)相同,则可以使用:
if (!empty($_FILES['picture'])) {
$pic= time() . $_FILES['picture']['name'];
$target= GW_UPLOADPATH . $pic;
if (move_uploaded_file($_FILES['picture']['tmp_name'], $target)) {
$query= "INSERT INTO posts (user_id, story, picture) VALUES ('$user_id', '$story', '$pic')";
mysqli_query($connect, $query);
header( 'Location: profile.php' );
}
}
答案 7 :(得分:0)
试试这个:
if (!empty($_FILES['picture']))
{
$pic= $_FILES['picture']['name'];
$picname = time() . $pic;
$target= GW_UPLOADPATH . $picname;
if (move_uploaded_file($_FILES['picture']['tmp_name'], $target))
{
$query= "INSERT INTO posts (user_id, story, picture) VALUES('$user_id', '$story', '$picname')";
mysqli_query($connect, $query);
header( 'Location: profile.php' );
}
}
$ picname将包含时间+图片名称。如果多个用户同时上传,它将是相同的。
答案 8 :(得分:0)
使用此:
$query= "INSERT INTO posts (user_id, story, picture) VALUES ('$user_id', '$story', '$target')";