SpringMVC中文件上传的客户端验证

SpringMVC中文件上传的客户端验证

客户端验证主要思想:在jsp页面中利用javascript进行对文件的判断,完成验证后允许上传

验证步骤:1.文件名称

2.获取文件的后缀名称

3.判断哪些文件类型允许上传

4.判断文件大小

5.满足条件后跳转后台实现上传

前台界面(验证上传文件是否格式满足要求):

<body>

<h2>文件上传</h2>

<form action="upload01" method="post" enctype="multipart/form-data" onsubmit="return toSub();">

上传者姓名:<input type="text" name="user_name"><br>

文件:<input  type="file" name="myfile" id="myfile">

<button>上传</button>

</form>

<script type="text/javascript">

function toSub(){//首先浏览器支持html5

var myfile=document.getElementById("myfile").files[0];

if(myfile){

//1.文件名称2.获取文件的后缀名称3.判断哪些文件类型允许上传4.判断文件大小

var fileName=myfile.name;

//2.获取文件的后缀名称

var ext=fileName.substring(fileName.lastIndexOf(".")+1);

//3.判断哪些文件类型允许上传

var allowFiles=["jpg","png","docx","doc"];

var flag=false;

for(var i=0;i<allowFiles.length;i++){

if(ext.toLowerCase()==allowFiles[i]){

flag=true;

break;

}

}

if(!flag){

alert("上传文件格式不正确,允许格式为:"+allowFiles.join(" | "));

return false;

}

//4.判断文件大小

var maxFileUploadSize=1024*1024*20;

if(myfile.size>maxFileUploadSize){

alert("您上传文件大小为:"+myfile.size+",大于规定大小:"+maxFileUploadSize);

return false;

}

return true;

}else{

alert("选择上传文件");

return false;

}

}

</script>

</body>

后台上传:

String path=request.getServletContext().getRealPath("/attr/");

//建立将要存储在当前服务环境下的文件

File folder=new File(path);

if(!folder.exists()){

//判断此文件夹是否存在

folder.mkdirs();

//不存在则创建文件夹(可以建立多层的mkdirs()方法)

}

//判断上传文件的姓名

String filename=myfile.getOriginalFilename();

//.获取上传文件的后缀名,例如jpg,docx

String ext=FilenameUtils.getExtension(filename);

//新建新的上传文件的文件名

String newFile=new Date().getTime()+"_"+new Random().nextInt(10000)+"."+ext;

//(上面是时间戳方式)

//(另一种方式完成)String newFile=UUID.randomUUID().toString()+"."+ext

//完成上传

myfile.transferTo(new File(path+File.separator+newFile));

return "jsp/result";

-

-------------------------------end

时间: 2024-10-03 11:31:48

SpringMVC中文件上传的客户端验证的相关文章

SpringMVC中文件上传

在SpringMVC中上传文件是比较方便的.主要分为以下几个步骤: 1)在applicationContext.xml中增加相应类的引用 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="

Spring Framework源码(十):SpringMVC之文件上传

我们这一章讲SpringMVC中文件上传的应用,首先我们还是从DispatcherServlet这个核心分发器开始讲起: processedRequest = checkMultipart(request); 还记得上一章讲doDispatch这个方法时见过的方法吧?现在我们来分析下这个方法的具体解析过程: protected HttpServletRequest checkMultipart(HttpServletRequest request) throws MultipartExcepti

一起学SpringMVC之文件上传

概述 在Web系统开发过程中,文件上传是普遍的功能,本文主要以一个简单的小例子,讲解SpringMVC中文件上传的使用方法,仅供学习分享使用,如有不足之处,还请指正. 文件上传依赖包 如下所示,文件上传依赖的jar包主要有两个: commons-fileupload-1.4.jar commons-io-2.6.jar SpringMVC支持文件上传操作步骤 1. 配置支持文件上传的Bean 如下所示:主要配置默认的编码方式,和上传文件的限制大小 1 <!-- 文件上传支持 --> 2 <

Extjs4 + springMVC的文件上传

用springMVC来做项目,如果遇到文件上传,那么一定要用spring自带的文件处理类来处理上传的文件,因为效率实在高过其他的. 从界面传过来的参数,如果设置了值对象,那么可以从值对象里面取出字符串类型的普通参数,如果不这样做,也可以直接从request里面获得,两种方法都可以. 问题是如果值对象里面写了其他类型的变量,妄想像Struts2那样处理,springMVC就会报出400 Bad Request的错误. 在Struts2里面,我们可以定义一个值对象为 public class Ima

SpringMVC全局文件上传类型限制【终极解决方案】

各位小伙伴们,有没有遇到这种情况,在信息安全日益受到各方重视的当下,白帽子越来越多,相应的作为开发人员的安全意识也得与日俱增.但是呢,总会有各种各种的原因,会出现全局性系统性的问题,你无法解决,或者无从下手.怎么办?没办法,只有回归本质. 今天分享一个SpringMVC全局文件上传类型限制终极解决方案,为那些还在迷茫该如何处理全局性文件上传漏洞的小伙伴送来一份小礼物.在阅读我的代码之前,请看下面的一篇关于SpringMVC文件上传的博文摘要.博文地址http://exceptioneye.ite

SpringMVC单文件上传

最近在看SpringMVC的文件上传部分,其实大多数系统都要涉及到文件上传,以前对于Struts的文件上传功能也做过总结了,今天主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤. 一.设置配置文件: SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file [html] view plaincopyprint? <!-- 配置MultipartResolver 用于文

关于SpringMVC的文件上传

关于文件的上传,之前写过2篇文章,基于Struts2框架,下面给出文章链接: <关于Struts2的文件上传>:http://www.cnblogs.com/lichenwei/p/3927964.html <关于Struts2的多文件上传>:http://www.cnblogs.com/lichenwei/p/3928200.html 其实文件上传的原理都是一样的,基于SpringMVC的文件上传实现要比Struts2要来得简单许多. 好了,废话不多说,直接切入主题吧,关于上传原

SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 不知不觉已经把Spring的基础部分讲解完了,所讲述的都是在项目中经常用到的东西,是经得住考验的,接下来的部分主要是要讲述使用SpringMVC进行的文件上传.处理Ajax请求.自定义拦截器功能的实现,不多说了,首先讲解文件上传部分,开始--     

C# 之 FTP服务器中文件上传与下载(四)

        通过上一篇博客<C# 之 FTP服务器中文件上传与下载(三)>,我们已经实现将文件从我们创建的FTP服务器中下载到本地.今天就最后给大家讲解一下怎么对FTP中的文件进行重命名和删除操作. 首先在前台添加两个重命名和删除的按钮 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Defaul