我在一个页面和另一个页面中有一个javascript函数我有一个专注于文件上传的php脚本。目前我的文件上传成功,这是个好消息。我的问题是,我想使用php来检查文件夹中是否已存在文件,但我想使用javascript函数显示已存在的状态文件的消息,如果这是真的。怎么办呢?
下面是检查文件是否存在的php代码:
if (file_exists("upload/" . $_FILES["fileImage"]["name"]))
{
}
下面是文件停止上传时的Javascript函数。如果文件没有上传,它会显示一条消息,说明上传文件时出错,如果文件成功上传,它会显示一条消息,但我想要一个额外的消息,如果文件没有上传但是这是因为文件已存在,然后我希望它显示一条消息,说明文件已经存在。
function stopImageUpload(success){
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
}
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
}
P.S请没有人提出他们的回答为什么我不在php代码中回显,我不想这样做,因为用户实际上从未实际导航到php脚本。
答案 0 :(得分:1)
你说。
P.S请没有人提出他们的回答为什么我不回应 PHP代码,我不想这样做,因为用户永远不会 实际上导航到php脚本。
无论如何你需要执行一些PHP代码。所以你必须以这种或那种方式做到这一点。然后,以您想要的任何方式向用户显示信息。
因为我们没有所有的代码,我假设你在html代码中有一个输入[type = file],所以你需要使用带有输入值的ajax。将它发送到你的服务器,检查文件名是否已经存在,然后使用php中的ajax以true或false响应,并执行javascript中的代码,该代码将告诉用户文件是否存在。你可以使用jQuery来做到这一点:
$("#myInput").on("change",function(event){
$.getJSON("checkFileService.php",{filename:$(event.currentTarget).val()},
function(datas){
if(datas.exists === true){
doSomething();
else{
doSomethingElse();
}
}
}
检查jQuery ajax api以获取更多信息
您必须编写一个php脚本,输出一些json字符串,如{&#34; exists&#34;:true},以便客户端脚本能够正常工作。
答案 1 :(得分:1)
在您的PHP代码中检查文件是否存在
else{
echo 2;
}
在你的其他clausule中的JS代码
if(success == 2){
result = '<span class="emsg">File already exist!</span><br/><br/>';
}
这是一个快速的解决方案,但它为您提供了一种通过JS / PHP进行更复杂文件处理的方法。例如。当PHP返回一个数据1,然后一切正常,当2然后文件存在,当3然后文件太大,当4然后文件有不良扩展,当5返回其他东西,依此类推。
我在学习C / C ++时遇到的这种方法(用C语言就像标准的东西)。这样您可以提供代码的某些部分的信息。
但是,如果名称不相关,我会为文件生成一个随机名称,如果文件名很重要,那么wold使用AJAX检查它,并显示有关它的信息,或者在文件名后附加一个数字( file(1).xyz,file(2).xyz,file(3).xyz)。这取决于你想要达到的目标。
答案 2 :(得分:1)
@safarov你能告诉我一个函数的例子,看看文件是否已经存在,然后为新上传的文件写下不同的名字吗?
保存/上传名为“filenamecounter.txt”的简单文本文件, 只包含文本1。
<?php
//Get the original name of file
$tmp_name = $_FILES["filename"]["tmp_name"];
//Get/Read File Name Counter
$filenamecounter = file_get_contents('filenamecounter.txt');
//If it is less than 10, add a "0"/Zero to make it like 01,02,03
if (strlen($filenamecounter) <= 1){
$filenamecounter = str_pad($filenamecounter, 2, '0', STR_PAD_LEFT);
}
//Assign Filename + Variable
$name = "filename".$filenamecounter.".txt";
//Save file with new name
move_uploaded_file($tmp_name, $name);
//write quotecounter to file.
$filenamecounter++;
file_put_contents("filenamecounter.txt", $filenamecounter);
?>