Javascript IF语句检查文件是否存在于不工作的路径中
我正在尝试检查路径中是否已经存在来自多个上载的文件,如果已经存在,我希望排除验证错误。是else if部分不起作用。数字目录是在ajax控制器服务器端创建的,但是我想在他们将更多同名文件上传到该目录之前进行检查。这可能吗?我做错了什么Javascript IF语句检查文件是否存在于不工作的路径中,javascript,validation,if-statement,multiple-file-upload,Javascript,Validation,If Statement,Multiple File Upload,我正在尝试检查路径中是否已经存在来自多个上载的文件,如果已经存在,我希望排除验证错误。是else if部分不起作用。数字目录是在ajax控制器服务器端创建的,但是我想在他们将更多同名文件上传到该目录之前进行检查。这可能吗?我做错了什么 function makeProgress(number){ var url = getRelativeURL("web/fileUpload"); var formData = new FormData();
function makeProgress(number){
var url = getRelativeURL("web/fileUpload");
var formData = new FormData();
formData.append('number', number);
fls = document.getElementById("attachmentFileUploadInput").files; //number of files...
console.log(fls);
var location = "C:/temp/" + number + "/";
console.log(location);
// maximum number of files at a time is 10
if(fls.length >= 11){
FileUploadLengthVisible(true);
return false;
}
var j;
for(j=0;j<fls.length;j++){
if (fls[j].size > 5000000) //5MB size per file
{
FileUploadSizeVisible(true);
return false;
}
else if (location + fls[j] == true)
{
alert("file exists");
return false;
}
else
{
formData.append('files[]', fls[j]); //note files[] not files
$.ajax({
url : url,
data : formData,
processData : false,
cache: false,
contentType: false,
type : 'POST',
success : function(data) {
FileUploadVisible(true);
$('#attachmentModal').modal('hide')
$(':input','#attachmentModal').val("");
$("#pbarmain").hide();
$("#pbar").hide();
$("#actionPlanDiv").hide();
setObjectEnabled('#Upload',false);
},
error : function(err) {
FileUploadErrorVisible(true);
}
});
console.log('loop each file working');
}
}
console.log("form data " + formData);
}
函数makeProgress(number){
var url=getRelativeURL(“web/fileUpload”);
var formData=new formData();
formData.append('number',number);
fls=document.getElementById(“attachmentFileUploadInput”).files;//文件数。。。
控制台日志(fls);
var location=“C:/temp/”+number+“/”;
控制台日志(位置);
//一次最大文件数为10
如果(fls.length>=11){
FileUploadLength可见(true);
返回false;
}
var j;
对于(j=0;j 5000000)//5MB大小的每个文件
{
FileUploadSizeVisible(true);
返回false;
}
否则如果(位置+fls[j]==真)
{
警报(“文件存在”);
返回false;
}
其他的
{
formData.append('files[],fls[j]);//注意文件[]不是文件
$.ajax({
url:url,
数据:formData,
processData:false,
cache:false,
contentType:false,
键入:“POST”,
成功:功能(数据){
FileUploadVisible(true);
$('#attachmentModal').modal('hide'))
$(':input','#attachmentModal').val(“”);
$(“#pbarmain”).hide();
$(“#pbar”).hide();
$(“#actionPlanDiv”).hide();
setObjectEnabled(“#上载”,false);
},
错误:函数(err){
FileUploadErrorVisible(true);
}
});
log('loop each file working');
}
}
console.log(“表单数据”+表单数据);
}
location+fls[j]
正在尝试连接对象和字符串。除此之外,还不清楚验证逻辑是什么。您不应该检查服务器上有什么吗?我正在尝试将文件上载到本地位置,但是如果该文件存在于此路径中,则我希望验证表明该文件已存在于该位置。这有意义吗?目前,它只是覆盖文件(如果存在)。这并不是因为出于安全原因,您无法在浏览器中访问本地文件……即使您正在运行localhost服务器也是可能的……但通常您希望将文件名发送到服务器,并使用服务器代码检查文件是否存在。如果不存在,请在此之后进行上载。您可以将上载的文件对象的.name
存储在sessionStorage
或localStorage
,然后检查文件名是否存在于sessionStorage
。有关路径组件的说明,请参见