我正在尝试将个人资料图片上传到我的社交帐户,但我遇到了一些问题。
我希望图像的名称是唯一的,所以我决定在每张图片上添加日期和时间,以防止与文件混淆。在我的数据库中,我有一个名字:date_time
类型:datetime
长度/值:YYYY-MM-DD HH:MM:SS
默认值:current_time
不为null或null(仍然不起作用)
我的代码是:
$info = date('YYYY-MM-DD HH:MM:SS');
if(!empty($username))
{
if(isset($_FILES['image']))
{
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size = $_FILES['image']['size'];
$width = 500;
$height = 500;
$file_tmp = $_FILES['image']['tmp_name'];
$file_type = $_FILES['image']['type'];
$tmp = explode('.',$_FILES['image']['name']); $file_ext=strtolower (end ($tmp));
$extensions= array("jpeg","jpg","png");
if(in_array($file_ext,$extensions)=== false){
$errors[]="extension not allowed, please choose a JPEG or PNG file.";
}
if($file_size > 2097152) {
$errors[]='File size must be 2 MB';
}
if ($width > 500 || $height > 500) {
// Cancel upload
}
if(empty($errors)==true)
{
move_uploaded_file($file_tmp,"uploads/" . $info . $file_name);
$store = "UPDATE users SET userPic='$file_name' AND date_time='". $info ."' WHERE username='$username'";
if(mysqli_query($conn, $store))
{
}
else
{
echo "Update failed!";
}
}else{
print_r($errors);
echo"Couldn't upload picture";
}
}
?>
<?php
$getimg = mysqli_query($conn,"SELECT userPic & date_time FROM users WHERE
username='$username'");
$rows=mysqli_fetch_array($getimg);
$img = $rows['userPic'] ['date_time'];
?>
<?php
}
else
{
echo "Invalid Username";
}
?>
<img id="myImg" src="uploads/<?php echo $img?>" alt="<?php echo $img ?>" width="200" height="150">
我收到了这些错误:
警告:move_uploaded_file(uploads / 2018201820182018-FebFeb-FriFri 2222:FebFeb:ndndenglish_tree.jpg):无法打开流:参数无效
警告:move_uploaded_file():无法移动
注意:未定义的索引:userPic
答案 0 :(得分:0)
您的日期格式不正确,一个'Y'与完整的4位数年份相同。
请在此处查看日期格式:
http://php.net/manual/en/function.date.php
这应该是您要查找的用于date_time
数据库字段的格式:
$database_info = date('Y-m-d H:i:s');
此外,文件名不能与冒号联系,因此对于文件名,请改用:
$filename_info = date('Y-m-d_H-i-s');
或只是将行更改为:
move_uploaded_file($file_tmp,"uploads/".date('Y-m-d_H-i-s').$file_name);