如何将文件上传到服务器时限制双重扩展

发布于 2025-01-19 22:50:00 字数 336 浏览 5 评论 0原文

fileName = inputParam.file_name.split('.')[0].toLowerCase().replace(/ /g, '') + '' +       Date.now() + "." + (fileData.file.name.split('.')[1] || inputParam.file_name.split('.')[1])
   
filePath = filePath + fileName

这是我正在使用的条件。

例如,它应该只限制 a.jpeg.jpg 或 a.php.jpeg。并允许像 aajpeg 或bird.tree.jpeg 这样的扩展

fileName = inputParam.file_name.split('.')[0].toLowerCase().replace(/ /g, '') + '' +       Date.now() + "." + (fileData.file.name.split('.')[1] || inputParam.file_name.split('.')[1])
   
filePath = filePath + fileName

This is the condition I am using.

For example it should only restrict a.jpeg.jpg or a.php.jpeg. and allow extension like a.a.jpeg or bird.tree.jpeg

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抹茶夏天i‖ 2025-01-26 22:50:00
var _validFilejpeg = [".jpeg", ".jpg", ".bmp", ".png",".pdf", ".txt"];
var invalid = [".php",".php5", ".pht", ".phtml", ".shtml", ".asa", ".cer", ".asax", ".swf",".xap"];
    function validateForSize(oInput, minSize, maxSizejpeg) {
        //if there is a need of specifying any other type, just add that particular type in var  _validFilejpeg
        if (oInput.type == "file") {
            var sFileName = oInput.value;
            var file = sFileName.match(/\d/g);
            var fileExt = sFileName.substr(sFileName.length-4);
            if (sFileName.length > 0) {
                var blnValid = false;
                for (var j = 0; j < _validFilejpeg.length; j++) {
                    var sCurExtension = _validFilejpeg[j];
                    if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length)
                        .toLowerCase() == sCurExtension.toLowerCase()) {
                        blnValid = true;
                        break;
                    }
                }
                if(fileExt = 'invalid'){
     alert("Your document does not have a proper file extension.")

      blnValid = false;
} 
  if(fileExt = 'file'){
     alert("Your document does not have a proper file extension.")

      blnValid = false;
} 

               if (!blnValid) {
                    alert("Sorry, this file is invalid, allowed extension is: " + _validFilejpeg.join(", "));
                    oInput.value = "";
                    return false;
                }
            }
        }

        fileSizeValidatejpeg(oInput, minSize, maxSizejpeg);
    }

    function fileSizeValidatejpeg(fdata, minSize, maxSizejpeg) {
        if (fdata.files && fdata.files[0]) {
            var fsize = fdata.files[0].size /1024; //The files property of an input element returns a FileList. fdata is an input element,fdata.files[0] returns a File object at the index 0.
            //alert(fsize)
            if (fsize > maxSizejpeg || fsize < minSize) {
                alert('This file size is: ' + fsize.toFixed(2) +
                    "KB. Files should be in " + (minSize) + " to " + (maxSizejpeg) + " KB ");
                fdata.value = ""; //so that the file name is not displayed on the side of the choose file button
                return false;
            } else {
                console.log("");
            }
        }
    }
<input type="file"  onchange="validateForSize(this,20,5000);" >

var _validFilejpeg = [".jpeg", ".jpg", ".bmp", ".png",".pdf", ".txt"];
var invalid = [".php",".php5", ".pht", ".phtml", ".shtml", ".asa", ".cer", ".asax", ".swf",".xap"];
    function validateForSize(oInput, minSize, maxSizejpeg) {
        //if there is a need of specifying any other type, just add that particular type in var  _validFilejpeg
        if (oInput.type == "file") {
            var sFileName = oInput.value;
            var file = sFileName.match(/\d/g);
            var fileExt = sFileName.substr(sFileName.length-4);
            if (sFileName.length > 0) {
                var blnValid = false;
                for (var j = 0; j < _validFilejpeg.length; j++) {
                    var sCurExtension = _validFilejpeg[j];
                    if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length)
                        .toLowerCase() == sCurExtension.toLowerCase()) {
                        blnValid = true;
                        break;
                    }
                }
                if(fileExt = 'invalid'){
     alert("Your document does not have a proper file extension.")

      blnValid = false;
} 
  if(fileExt = 'file'){
     alert("Your document does not have a proper file extension.")

      blnValid = false;
} 

               if (!blnValid) {
                    alert("Sorry, this file is invalid, allowed extension is: " + _validFilejpeg.join(", "));
                    oInput.value = "";
                    return false;
                }
            }
        }

        fileSizeValidatejpeg(oInput, minSize, maxSizejpeg);
    }

    function fileSizeValidatejpeg(fdata, minSize, maxSizejpeg) {
        if (fdata.files && fdata.files[0]) {
            var fsize = fdata.files[0].size /1024; //The files property of an input element returns a FileList. fdata is an input element,fdata.files[0] returns a File object at the index 0.
            //alert(fsize)
            if (fsize > maxSizejpeg || fsize < minSize) {
                alert('This file size is: ' + fsize.toFixed(2) +
                    "KB. Files should be in " + (minSize) + " to " + (maxSizejpeg) + " KB ");
                fdata.value = ""; //so that the file name is not displayed on the side of the choose file button
                return false;
            } else {
                console.log("");
            }
        }
    }
<input type="file"  onchange="validateForSize(this,20,5000);" >

无语# 2025-01-26 22:50:00

你可以简单地这样做

if (fileName.split('.').length > 2) {
    throw new Error('Double extension file detected')
}

You can simply do this

if (fileName.split('.').length > 2) {
    throw new Error('Double extension file detected')
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文