Javascript PHP在更新SQL表之前检查文件是否存在

Javascript PHP在更新SQL表之前检查文件是否存在,javascript,php,file-exists,Javascript,Php,File Exists,我目前正在做一个员工工作监控,当他们开始和完成所需文档时,他们作为编码器的输出将通过记录进行监控 完成编码后,他们会根据类别将最终数据保存到服务器中。因此,数据不是只存储在一个文件夹中,而是有多个文件夹 示例:数据1: server/category1/000000-1/000000-1-final data.pdf server/category2/000000-2/000000-2-final data.pdf 正如您在这个示例图像中所看到的,在工作人员完成一个输出之前,他们必须先单击一个

我目前正在做一个员工工作监控,当他们开始和完成所需文档时,他们作为编码器的输出将通过记录进行监控

完成编码后,他们会根据类别将最终数据保存到服务器中。因此,数据不是只存储在一个文件夹中,而是有多个文件夹

示例:数据1:

server/category1/000000-1/000000-1-final data.pdf
server/category2/000000-2/000000-2-final data.pdf
正如您在这个示例图像中所看到的,在工作人员完成一个输出之前,他们必须先单击一个按钮。此按钮将检查或搜索服务器中存在的数据(其中文件名与工作代码相同)。这样做的原因是为了确保它们正确编码数据的标准文件名。如果文件名不正确/不存在,则无法完成一个输出

我怎样才能达到这种逻辑? 它必须在其中搜索不同的文件夹以检查数据

如果存在,则通过时间戳将SQL表更新为finished列的值

这是我为按钮功能所做的尝试:

var id=$(this.attr('id').split('-')[1]
var work_code=document.getElementById('work_code-'+id.).value;
$.ajax({///如果为TRUE,请检查PHP脚本
类型:'post',
url:'checkData.php',
数据:{
工作代码:工作代码
},
成功:函数(){///如果找到文件
$(“#检查按钮”).css(“显示”、“无”);//单击时隐藏按钮
$('#Finished-'+id).html(CurrentTimestamp)//将列值设置为timestamp
var值=(CurrentTimestamp);
var column=$(“#Finished-”+id).attr('id').split('-')[0]
$.ajax({///如果找到文件,则更新sql的值
类型:'post',
url:'editable.php',
数据:{
价值:价值,
id:id,
列:列
}
}).完成(功能(数据){
成长通知({
标题:“找到数据!”,
描述:“计划已成功完成”,
showProgress:false,
图片:{
可见:对,
customImage:'Images/success.png'
},
键入:“成功”,
位置:'右上',
关闭超时:2000
});  
setTimeout(函数(){
sessionStorage.reloadAfterPageLoad=true;
window.location.reload();//然后重新加载页面。(3)
}, 2500); 
})
}, 
错误:函数(){//如果找不到文件
swal(“未找到数据!”,“请仔细检查数据的文件名。”{
图标:“错误”,
按钮:false,
计时器:1900,
});
}
}); 
})
这是
checkData.php
的脚本:(这部分是我不知道要在服务器中检查数据应该放什么东西。)


您的
checkData.php
脚本正在返回一个布尔值(
true
false
),但它没有返回完整的HTTP响应。脚本应返回完整的HTTP响应,并对结果进行如下编码:

$data=['存在'=>
(fopen($cat1,“r”)| fopen($cat2,“r”))
];
标题('Content-Type:application/json');
echo json_编码($data);
然后,您的JS
.done()
函数应该检查服务器返回的值,并做出相应的响应,如下所示:

done(函数(数据){
如果(data.exists){/'exists'是PHP返回的键
log('文件存在!');
}否则{
log('文件不存在!');
}
}

您的
checkData.php
脚本返回一个布尔值(
true
false
),但它没有返回完整的HTTP响应。您的脚本应该返回完整的HTTP响应,并对结果进行如下编码:

$data=['存在'=>
(fopen($cat1,“r”)| fopen($cat2,“r”))
];
标题('Content-Type:application/json');
echo json_编码($data);
然后,您的JS
.done()
函数应该检查服务器返回的值,并做出相应的响应,如下所示:

done(函数(数据){
如果(data.exists){/'exists'是PHP返回的键
log('文件存在!');
}否则{
log('文件不存在!');
}
}

@holdoffuinger抱歉,但不确定你的意思?@holdoffuinger抱歉,但不确定你的意思?你提供的JSON格式不起作用…你能提供我如何根据我的代码返回完整的HTTP响应吗?抱歉,我的PHP代码中有一个输入错误。
应该是
。我已经更改了PHP示例。你也可以ave要更改您的
$。ajax
调用以适应接收JSON数据。我在回答中提供的链接应该会有帮助。您提供的JSON格式不起作用…您能提供如何根据我的代码返回完整的HTTP响应吗?抱歉,我的PHP代码中有一个输入错误。
应该是
=/code>。我有更改d PHP示例。您可能还必须更改
$.ajax
调用以适应接收JSON数据。我在回答中提供的链接应该会对此有所帮助。
<?php
$server = 'http://10.000.00.00:0000/';

$cat1 = $server.'/category1'.$_REQUEST["work_code"].'/'.$_REQUEST["work_code"].'-final data.pdf';
$cat2 = $server.'/category2'.$_REQUEST["work_code"].'/'.$_REQUEST["work_code"].'-final data.pdf';
// condition to check if file exist

if (fopen($cat1,"r") || fopen($cat2,"r")) {
    return true;
}else{
    return false;
}

?>