识别下载文件的格式和大小

怎么识别这个下载文件的格式和大小的
比如它的格式是的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
这个下载文件的格式是PDF格式,大小为235.6KB。在代码中可以看到,文件名称为111,格式为PDF,大小为235.6kb,下载链接为1111.pdf。要获取文件的格式和大小,可以通过解析文件名的后缀名得到文件的格式,如这里的.pdf就表示PDF格式。文件大小可以通过读取文件属性来获取,或者通过发送请求获取文件实际大小。具体实现要根据不同的开发语言和框架而定。