【发布时间】:2021-06-02 19:57:30
【问题描述】:
我在我的网站上上传重复文件时遇到问题,
但是,我想要的是,当我上传图片时,如果有重复的情况,文件名将是 image1.jpg,如果是更多 image2.jpg。我是在 PHP 上做的。但是我需要在上传后获取确切的文件,以便我可以正确地将 url 发送给客户端。
这里是javascript代码
var node = document.getElementById("option-122"),
ele = document.createElement("form");
ele.className = "fileup";
ele.setAttribute("name", "fileToUpload");
ele.setAttribute("id", "fileupload");
ele.setAttribute("method", "post");
ele.setAttribute("target", "hidden-iframe");
ele.setAttribute("enctype", "multipart/form-data");
ele.setAttribute("action", "/wp-content/themes/dalia/upload.php");
node.parentNode.insertBefore(ele, node.nextSibling);
document.getElementById('fileupload').innerHTML = '<input type="file" id="inputfile" name="fileToUpload" accept="image/*" onchange="uploadFile()"><input type="submit" name="submit" id="form-submit" style="display: none !important;"><iframe name="hidden-iframe" style="display: none;"></iframe>';
document.getElementById('inputfile').onchange = uploadOnChange;
function uploadOnChange() {
var filename = this.value;
var lastIndex = filename.lastIndexOf("\\");
if (lastIndex >= 0) {
filename = filename.substring(lastIndex + 1);
}
document.getElementById('option-122').value = 'www.myurl.com/wp-content/themes/dalia/uploads/'+filename;
document.getElementById("form-submit").click();
}
node.setAttribute("type","hidden");
document.getElementById("fileupload").style.width = '95%';
这是php的样子
<?php
$uploads_dir = 'uploads/';
$pname = $_FILES["fileToUpload"]["name"];
$tname=$_FILES["fileToUpload"]["tmp_name"];
$name = pathinfo($_FILES['fileToUpload']['name'], PATHINFO_FILENAME);
$extension = pathinfo($_FILES['fileToUpload']['name'], PATHINFO_EXTENSION);
$increment = 0;
$pname = $name . '.' . $extension;
while(is_file($uploads_dir.'/'.$pname)) {
$increment++;
$pname = $name . $increment . '.' . $extension;
}
move_uploaded_file($tname, $uploads_dir.'/'.$pname);
echo $pname;
?>
现在可以在 option-122 的值中写入文件名,但是当它是重复的情况时它不起作用。
【问题讨论】:
标签: javascript php html wordpress