如何防止日期/时间更改php
我想通过在文件名中添加日期/时间来防止重复的图像文件上载 我有一个图像预览,如果用户上传图像文件,该文件将被发送到带有日期时间戳的文件夹。当用户填写表单并将图像和表单详细信息发布到数据库时,图像文件中的图像分钟数会发生变化 我遇到的问题是,当图像文件发送到文件夹时,设置了日期时间,例如image 17 10 2017 10 18.jpg,但当我为数据库创建图像路径时,分钟数会发生变化,例如image 17 10 2017 10 19.jpg 1) 使用Ajax ie.filename.date.extension将文件发送到文件夹如何防止日期/时间更改php,php,Php,我想通过在文件名中添加日期/时间来防止重复的图像文件上载 我有一个图像预览,如果用户上传图像文件,该文件将被发送到带有日期时间戳的文件夹。当用户填写表单并将图像和表单详细信息发布到数据库时,图像文件中的图像分钟数会发生变化 我遇到的问题是,当图像文件发送到文件夹时,设置了日期时间,例如image 17 10 2017 10 18.jpg,但当我为数据库创建图像路径时,分钟数会发生变化,例如image 17 10 2017 10 19.jpg 1) 使用Ajax ie.filename.date.
2) 填写表单后发送到数据库的文件路径,即.filepath/filename.date.extension 日期/时间不匹配1)应等于2)
生成一次时间戳。如果您再次需要它,请将其发送到其他组件。使用文件哈希来防止重复上载,而不是使用时间戳或日期
有关以下两个方面的信息,请参阅PHP手册:
- -计算给定文件的md5哈希
- -计算文件的sha1哈希
那么您在上传AJAX文件时生成一个时间戳,在提交表单时生成第二个时间戳?是的,这两个时间戳可能不同。AJAX文件上传完成后,您应该将时间戳发送回浏览器,并将其存储在隐藏的表单输入中。不要再次生成时间戳,请使用隐藏输入中存储的时间戳。谢谢,我生成了一个随机数,通过AJAX和图像一起发送,同时将相同的数字发送到隐藏的输入。我不得不拆分Ajax上传文件并形成上传文件。
<?php
// Uploaded file sent via AJAX
$mainImg = $_FILES['mainImg']['name'];
$ext = pathinfo($mainImg, PATHINFO_EXTENSION);
$justname = basename($mainImg,".$ext");
// Prevent duplicate
$pd = date(" d m y H i ");
// 6)Rename the main Image
$dateAdded = $justname.$pd.".".$ext;
FILE IS SENT TO THE FOLDER THEN WHEN FORM IS FILLED OUT AND POSTED ALL
INFO GOES TO DATABASE...
if (isset($_POST['submit'])){
$directory = "Images/";
$filetodatabase = $directory.$dateAdded;
//CONNECT AND INSERT DATA INTO DATABASE USING MYSQL
}