我有一个带有图像上传部分的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也很好
有人可以帮我解决这个难题吗? 预先感谢
答案 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);