Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止日期/时间更改php_Php - Fatal编程技术网

如何防止日期/时间更改php

如何防止日期/时间更改php,php,Php,我想通过在文件名中添加日期/时间来防止重复的图像文件上载 我有一个图像预览,如果用户上传图像文件,该文件将被发送到带有日期时间戳的文件夹。当用户填写表单并将图像和表单详细信息发布到数据库时,图像文件中的图像分钟数会发生变化 我遇到的问题是,当图像文件发送到文件夹时,设置了日期时间,例如image 17 10 2017 10 18.jpg,但当我为数据库创建图像路径时,分钟数会发生变化,例如image 17 10 2017 10 19.jpg 1) 使用Ajax ie.filename.date.

我想通过在文件名中添加日期/时间来防止重复的图像文件上载

我有一个图像预览,如果用户上传图像文件,该文件将被发送到带有日期时间戳的文件夹。当用户填写表单并将图像和表单详细信息发布到数据库时,图像文件中的图像分钟数会发生变化

我遇到的问题是,当图像文件发送到文件夹时,设置了日期时间,例如image 17 10 2017 10 18.jpg,但当我为数据库创建图像路径时,分钟数会发生变化,例如image 17 10 2017 10 19.jpg

1) 使用Ajax ie.filename.date.extension将文件发送到文件夹
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
  }