怎么识别这个下载文件的格式和大小的
比如它的格式是的pdf,下载大小有200kb
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>判断识别文件格式和大小</title>
<script src="https://code.jquery.com/jquery-1.7.2.js"></script>
</head>
<body>
<style>
.download-list{width:1000px;margin:auto}
.download-list li{display:flex;}
.download-list li span{flex:1;padding:10px;border:1px #ccc solid;background:#a8a8a8;}
</style>
<ul class="download-list">
<li class="top">
<span>文件名称</span>
<span>下载格式</span>
<span>文件大小</span>
<span>下载</span>
</li>
<li class="">
<span class="title tip">111</span>
<span>PDF</span>
<span>235.6kb</span>
<span><a href="1111.pdf" class="btn" target="_blank">下载</a></span>
</li>
<li class="">
<span class="title tip">222</span>
<span>ZIP</span>
<span>205.2kb</span>
<span><a href="222.zip" class="btn" target="_blank">下载</a></span>
</li>
</ul>
</body>
</html>
你写的网页不是已经列出zip和pdf大小了吗?,jquery可以,我使用另一种正则表达式完成:
const downloadLinks = document.querySelectorAll('.download-list a');
// 匹配文件的正则
const fileSizeRegex = /\\d+(\\.\\d+)?\\s*(KB|MB|GB)/;
// 定义正则表达式
const fileExtRegex = /\\.\\w+$/;
downloadLinks.forEach(link => {
const fileName = link.getAttribute('href');
const fileSize = link.parentElement.previousElementSibling.textContent.match(fileSizeRegex)[0];
const fileFormat = fileName.match(fileExtRegex)[0].substring(1).toUpperCase();
//print最后的文件信息
console.log(`文件名:${fileName},文件格式:${fileFormat},文件大小:${fileSize}`);
});
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
可以使用JavaScript来识别下载文件的格式和大小。其中,文件格式可以通过文件名中的后缀名来判断,文件大小可以通过文件的字节大小来计算。
例如,在上述代码中,可以使用以下JavaScript代码来获取每个文件的格式和大小:
// 获取所有下载链接
var links = document.querySelectorAll('.download-list .btn');
// 遍历所有链接
for (var i = 0; i < links.length; i++) {
// 获取链接的URL和文件名
var url = links[i].href;
var filename = url.split('/').pop();
// 获取文件后缀名
var extension = filename.split('.').pop().toUpperCase();
// 获取文件大小
var xhr = new XMLHttpRequest();
xhr.open('HEAD', url, false);
xhr.send();
var size = xhr.getResponseHeader('Content-Length');
var sizeInKB = Math.ceil(size / 1024) + 'kb';
// 将格式和大小填充到列表中
var row = links[i].parentNode.parentNode;
row.children[1].textContent = extension;
row.children[2].textContent = sizeInKB;
}
这段代码会获取所有下载链接,并遍历每个链接。对于每个链接,它会获取链接的URL和文件名,并从文件名中获取后缀名。然后,它会通过XMLHttpRequest获取文件的字节大小,并计算出文件大小。最后,它会将格式和大小填充到列表中。
需要注意的是,由于XMLHttpRequest是异步的,上述代码中使用了同步请求。在实际应用中,应该使用异步请求来避免页面卡顿。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
要识别下载文件的格式和大小,需要通过文件的URL进行判断。可以使用JavaScript来获取文件的URL,然后再从URL中提取文件的格式和大小。
以下是一个示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>判断识别文件格式和大小</title>
<script src="https://code.jquery.com/jquery-1.7.2.js"></script>
</head>
<body>
<style>
.download-list{width:1000px;margin:auto}
.download-list li{display:flex;}
.download-list li span{flex:1;padding:10px;border:1px #ccc solid;background:#a8a8a8;}
</style>
<ul class="download-list">
<li class="top">
<span>文件名称</span>
<span>下载格式</span>
<span>文件大小</span>
<span>下载</span>
</li>
<li class="">
<span class="title tip">111</span>
<span>PDF</span>
<span>235.6kb</span>
<span><a href="1111.pdf" class="btn" target="_blank">下载</a></span>
</li>
<li class="">
<span class="title tip">222</span>
<span>ZIP</span>
<span>205.2kb</span>
<span><a href="222.zip" class="btn" target="_blank">下载</a></span>
</li>
</ul>
<script>
$(document).ready(function() {
// 遍历每个下载链接,获取文件的格式和大小
$('a.btn').each(function(index, element) {
var url = $(element).attr('href');
var fileName = url.substring(url.lastIndexOf('/')+1);
var fileSize = '-';
var fileExt = fileName.substring(fileName.lastIndexOf('.')+1).toUpperCase();
$.ajax({
url: url,
type: 'HEAD',
async: false,
success: function(data, status, xhr) {
fileSize = formatSizeUnits(xhr.getResponseHeader('Content-Length'));
}
});
// 为每个下载链接添加格式和大小信息
$(element).after('<span class="format">' + fileExt + '</span><span class="size">' + fileSize + '</span>');
});
// 格式化文件大小的函数
function formatSizeUnits(bytes){
if (bytes >= 1073741824){
bytes = (bytes / 1073741824).toFixed(2) + ' GB';
} else if (bytes >= 1048576){
bytes = (bytes / 1048576).toFixed(2) + ' MB';
} else if (bytes >= 1024){
bytes = (bytes / 1024).toFixed(2) + ' KB';
} else if (bytes > 1){
bytes = bytes + ' bytes';
} else if (bytes == 1){
bytes = bytes + ' byte';
} else {
bytes = '-';
}
return bytes;
}
});
</script>
</body>
</html>
这段代码会对每个下载链接进行遍历,并通过AJAX获取文件的大小。获取到文件大小后,会添加格式和大小信息在链接的后面。文件大小的显示采用自动格式化,可以转换为KB或MB或GB等。
如果我的回答解决了您的问题,请采纳!
File类型的对象,包含文件类型和文件大小等字段
size:文件的大小(单位为字节)。
type:文件的 MIME 类型。
判断文件的大小:
var size = fileSize / 1024;
if(size>10000){
alert("附件不能大于10M");
}
判断文件格式:
var index1=this.ImpForm.name.toLowerCase().split('.').splice(-1);
if("xls" != index1 && "xlsx" != index1 ){}
该回答引用ChatGPT