如何将时间/日期戳附加到html文件中的文件名

时间:2018-09-11 13:28:30

标签: javascript php html html5

我有一个带有图像上传部分的html表单,它工作正常,但是出于数据管理的原因,我希望图像文件名在上传时添加时间/日期戳。

过去曾经发生过的事情是,如果通过电话上传文件,它将被称为image.jpg;如果可以上传具有相同名称的新文件,这将被覆盖

不过我想发生的事情是,该文件将在2018年9月11日15:18:21被称为image091118151821。或类似的东西。

HTML表单:

<form method="POST" action="incident-submit.php" enctype="multipart/form-data">
div class="element-date"><label class="title">Date</label><input class="large" data-format="yyyy-mm-dd" type="date" name="date" placeholder="yyyy-mm-dd"/></div>
    <div class="element-input"><label class="title">Division</label><input class="large" type="text" name="input" /></div>
    <div class="element-input"><label class="title">Location within Division</label><input class="large" type="text" name="input1" /></div>
    <div class="element-input"><label class="title">Employee Division</label><input class="large" type="text" name="input2" /></div>
    <div class="element-textarea"><label class="title">Cause of events</label><textarea class="large" name="textarea" cols="20" rows="5" ></textarea></div>


<input type="file" name="image">
</div>
<div>
  <button type="submit" name="upload">POST</button>
</div>

以及将数据提交到数据库的PHP:

// If upload button is clicked ...
  if (isset($_POST['upload'])) {
    // Get image name
    $image = $_FILES['image']['name'];
    // Get text

    $date = $_POST['date'];
    $division = $_POST['input'];
    $location = $_POST['input1'];
    $employeedivision = $_POST['input2'];
    $events = $_POST['textarea'];

    // image file directory
    $target = "img/".basename($image);

...
    if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
    $msg = "Image uploaded successfully";
}else{
    $msg = "Failed to upload image";
}

然后我更改了

$image = $_FILES['image']['name'];

行到:

$image = $_FILES['image'.date('m-d-Y_hia').'.jpg']['name'.date('m-d-Y_hia').'.jpg'];

似乎没有上传任何东西

有没有办法让我做到这一点,它不必在php中完成,javascript也很好

有人可以帮我解决这个难题吗? 预先感谢

2 个答案:

答案 0 :(得分:1)

使用方便的pathinfo()函数,您可以挖掘出文件名的所有单独部分。然后,只需使用它们和date()函数即可构建您选择的文件名。

$path_parts = pathinfo($_FILES['image']['name']);

$dest_filename = $path_parts['filename'] . date('mdyHis') . '.' . $path_parts['extension'];

// image file directory
$target = "img/$dest_filename";

如果要将文件名与日期分开以使其更易于阅读,可以尝试

$dest_filename = $path_parts['filename'] . 
                 '_' . 
                 date('mdyHis') . 
                 '.' . 
                 $path_parts['extension'];

答案 1 :(得分:-1)

您需要更改此行

function repeat(){
  $('.box1').css({'clip-path': 'polygon(0 0, 100% 0, 100% 120%, 120% 100%, 0 100%)'})})
setInterval(repeat, 2000);

收件人:

$target = "img/".basename($image);