`
Josh_Persistence
  • 浏览: 1645870 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

JavaScript判断上传文件的类型是否合法

阅读更多

方法一、简单直接

function Check_FileType(str) {

 

    var pos = str.lastIndexOf(".");

 

    var lastname = str.substring(pos,str.length)  //此处文件后缀名也可用数组方式获得str.split(".")

 

    if (lastname.toLowerCase()!=".jpg" && lastname.toLowerCase()!=".gif") {

 

     alert("您上传的文件类型为"+lastname+",图片必须为.jpg,.gif类型");

 

     document.myform.pic.focus();

 

     return false;

 

    } else {

 

        return true;

 

    }

 

}

 

方法二:利用JavaScript中的数组

 

function lastname() {

    // 获取欲上传的文件路径

    var filepath = document.getElementById("file").value; 

    

    // 为了避免转义反斜杠出问题,这里将对其进行转换

    var re = /(\\+)/g;  

    var filename = filepath.replace(re,"#"); 

 

    // 对路径字符串进行剪切截取

   var fileArray = filename.split("#"); 

 

   // 获取数组中最后一个,即文件名

   var fileName = fileArray[fileArray.length-1]; 

   

   // 再对文件名进行截取,以取得后缀名

   var suffixName = fileName.split("."); 

 

   // 获取截取的最后一个字符串,即为后缀名

   var last = suffixName[suffixName.length-1];

   

   // 添加需要判断的后缀名类型

   var tp ="jpg,gif,bmp,JPG,GIF,BMP"; 

 

   // 返回符合条件的后缀名在字符串中的位置

   var rs = tp.indexOf(last); 

 

   // 如果返回的结果大于或等于0,说明包含允许上传的文件类型

   if (rs>=0) {

    return true;

   } else {

      alert("您选择的上传文件不是有效的图片文件!");

      return false;

   }

}

1
4
分享到:
评论
4 楼 rainsilence 2013-06-17  
Josh_Persistence 写道
rainsilence 写道
javascript做不了这个。用文件名来判断是没有意义的。因为1。文件名可以修改,2。ie8下取文件名是取不到的。

你的博客内容太多,不知道是哪篇。另外我已经测试过了,IE8我上面的方法是work的。


1。ie8里面有个设置。可以将你的输入路径变掉http://yunzhu.iteye.com/blog/1116893
2。js验证有个最大的问题,一般水平的人都是可以绕过js直接提交。你js验证不就没用了?

另外,我的blog总共3页,你只要再翻两页就可以看到。但是,如果你连这个耐心也没有,我劝你还是放弃技术吧。
3 楼 Josh_Persistence 2013-06-17  
rainsilence 写道
javascript做不了这个。用文件名来判断是没有意义的。因为1。文件名可以修改,2。ie8下取文件名是取不到的。

你的博客内容太多,不知道是哪篇。另外我已经测试过了,IE8我上面的方法是work的。
2 楼 rainsilence 2013-06-17  
我的blog里写的清清楚楚
1 楼 Josh_Persistence 2013-06-17  
rainsilence 写道
javascript做不了这个。用文件名来判断是没有意义的。因为1。文件名可以修改,2。ie8下取文件名是取不到的。

那你有更好的方法吗?不用文件名来判断后缀,用什么来判断后缀呢?

相关推荐

    ajax文件上传带进度条,带判断上传文件是否合法

    为了提供更好的用户体验,开发者需要实现文件上传过程中的进度显示以及对上传文件的合法性进行验证。在本篇文章中,我们将深入探讨如何使用AJAX技术来实现这个功能,特别关注如何添加进度条并检查文件类型。 首先,...

    js判断上传文件后缀名是否合法

    本文将详细解读如何利用JavaScript语言来判断上传文件后缀名是否合法。 首先,我们需要了解文件的后缀名是什么。一个文件的后缀名位于文件名的最后,通常用来标识文件的类型。例如,在文件名 "example.jpg" 中,"....

    uploadify上传及后台文件合法性验证的代码解析

    主要包括后台上传方法的实现、文件合法性验证类的构建以及前端上传JavaScript的实现。 首先,后台上传方法是通过一个Spring MVC的@RequestMapping注解定义的接口来实现的。该接口接收HTTP POST请求,并处理多部分...

    js判断图片真实性(非判断文件后缀)

    在前端开发中,确保用户上传的是真实的图片文件是非常重要的安全措施。传统的检查方式是通过文件的后缀名来判断,但这种方法存在明显的漏洞,因为恶意用户可以轻易地更改文件的后缀名,使得非图片文件伪装成图片。...

    php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件).pdf

    PHP 文件上传是 Web 开发中常见的功能之一,当用户上传文件时,我们需要对文件类型进行判断和限制,以确保上传的文件安全和合法。为此,我们需要了解各种文件类型的后缀名和 MIME 类型。本文将对 PHP 文件上传后缀...

    ckeditor上传图片,上传文件

    而`Controller`则处理业务逻辑,例如验证上传文件的类型、大小,以及将文件保存到服务器的指定位置。 在`ckeditorUploadImgApi.java`中,可能会包含处理上传请求的方法,如`uploadImage()`或`uploadFile()`,这些...

    asp无组件上传类化境HTTP上传程序

    FileInfo类会涉及到文件的保存,需要编写逻辑判断文件名是否合法,决定最终的文件存储路径和文件名,以及文件大小的校验等。 7. 安全性考虑:在实现无组件上传类时,还需要注意安全性的问题。比如,要限制上传文件...

    获取文件类型.rar

    在IT行业中,获取文件类型是一项基础且重要的任务。文件类型决定了数据如何被处理、打开或显示,因此了解和正确识别文件类型是系统管理和...在处理用户上传的文件时,一定要注意安全性和合法性,避免潜在的安全风险。

    jsp上传文件Demo

    这包括检查文件类型、文件大小、文件名是否合法等。例如,可以使用`Content-Type`来判断文件类型,限制不允许上传某些可能带来安全风险的文件格式。同时,为了防止文件覆盖或者路径遍历攻击,我们需要对上传的文件名...

    flash html5实现浏览器兼容的文件上传

    HTML5引入了File API,允许开发者在JavaScript中直接操作文件,包括读取、写入和上传文件。File API提供了一个用户友好的方式来处理文件,例如,用户可以选择多个文件,预览文件内容,以及分块上传大文件等。此外,...

    jquery多文件上传

    此外,该插件还具备了文件格式判断,确保用户只能上传指定类型的文件,避免了服务器端处理不合法文件的压力。 首先,让我们深入了解jQuery,这是一个轻量级的JavaScript库,广泛用于简化DOM操作、事件处理、Ajax...

    FileUpload控件上传文件客户端验证格式

    综上所述,FileUpload控件的客户端验证是Web应用中必不可少的一环,它结合了JavaScript、jQuery和HTML5等技术,确保了用户上传文件的安全性和合法性。同时,服务端验证作为补充,为整个文件上传过程提供了额外的安全...

    js上传图片大小类型限制检测

    在上传时,我们可以检查这个属性来判断是否为合法的图片类型。例如: ```javascript function checkFileType(file) { const allowedTypes = ['image/jpeg', 'image/png', 'image/gif']; return allowedTypes....

    jsp_java文件上传

    - **处理每个文件项**:对于每个`FileItem`,判断是否为普通字段还是上传文件,如果是文件则保存到服务器。 6. **文件保存** - **临时目录**:通常先将文件保存到服务器的临时目录,以避免直接写入目标目录导致的...

    基于PHP的文件批量上传客户端免费组件源码.zip

    9. **数据库记录**:如果需要跟踪每个上传文件的信息,可能需要将文件信息(如名称、大小、上传时间等)存入数据库。 10. **代码结构与设计模式**:良好的代码组织和设计模式如MVC(模型-视图-控制器)可以帮助管理...

    asp.net文件与图片处理

    3. **客户端检查上传文件类型**: 客户端检查通常使用JavaScript进行,限制用户只能选择特定类型的文件,例如限制为图片格式。但客户端检查仅作为增强用户体验,不能完全依赖,因为客户端检查容易被绕过。 4. **...

    spring mvc+ajax 导出导入xml文件功能实现和整理

    在HTML页面中,通过一个div元素和内部的input和button元素来构建用户上传文件的界面。input元素通过accept属性限定了只能上传XML格式的文件,这有助于防止非法文件的上传并提升用户体验。同时,页面上还提供了一个...

    上传漏洞总结(私人珍藏)

    许多Web应用会根据上传文件的`Content-Type`来判断其是否符合预期类型。例如,仅允许上传图片的应用可能会检查`Content-Type`是否为`image/*`。但是,攻击者可以伪造请求的`Content-Type`头部来绕过这一检查。 **...

Global site tag (gtag.js) - Google Analytics