大多数时候,网络应用程序不允许浏览者自由上传,尤其是可执行文件——因为它们可能是病毒程序。 通常,我们可以允许浏览者上传图片、上传压缩文件等; 此外,我们还必须限制观众上传的文件大小。 因此文件上传时必须进行文件过滤。
从上面可以看出,获取文件类型和文件大小有两种方法。 为了实现文件过滤,可以通过判断这两个方法的返回值来实现文件过滤。 通过这种方式,程序员获得了完全的过滤控制。
如果您需要手动实现文件过滤,请按照以下步骤操作。
定义一个专门用于文件过滤的方法。 方法名称是任意的。 该方法的逻辑是判断上传文件的类型是否为允许的类型。 例如add()方法,该方法代码如下。
程序清单:codes\04\4.3\\WEB-INF\src\org\\app\\.java
/** *过滤文件类型*@系统允许上传的所有文件类型*@如果上传文件的文件类型允许上传,*返回null,否则返回错误字符串*/ pes([] types) { //获取想要的上传文件 type=(); for(:types) { if(type.()) { ; } } ; }
上述方法判断上传文件的文件类型是否在允许上传的文件类型列表中。 为了让应用程序动态配置允许上传的文件列表,添加了一个属性,该属性的值列出了所有允许上传的文件类型。 为了在 .xml 文件中配置属性的值,必须在类中提供以下代码。
程序清单:codes\04\4.3\\WEB-INF\src\org\\app\\.java
//定义允许上传的文件类型pes; //属性和方法 Types() { ; } pes() { this.=; }
(3)利用2的输入验证判断用户输入的文件是否符合要求。 如果不满足要求,接下来会添加错误消息。 其中添加的()方法代码如下:
程序清单:codes\04\4.3\\WEB-INF\src\org\\app\\.java
//进行输入验证 () { //将允许上传的文件类型字符串分解为逗号(,) //分解为字符串数组,判断当前文件类型是否允许上传=( ()。分裂(”,” )); //如果当前文件类型不允许上传 if(!=null) { //Add("","您要上传的文件类型不正确!"); } }
上面()方法的代码非常简单。 调用它来判断查看者上传的文件是否符合要求。 如果不是允许上传的文件类型,则添加()方法,这样2就会自动返回输入的逻辑视图名; 只有当文件类型是允许上传的文件类型时,才真正执行文件上传逻辑。
为了在文件类型检查失败时返回输入逻辑视图,必须添加输入逻辑视图配置。 经过上述配置后,当查看器上传的文件类型不被允许时,系统将返回到输入逻辑视图对应的页面。
修改后的.xml文件代码如下。
程序清单:codes\04\4.3\\WEB-INF\src\.xml
“”class =“org..app..”>
“”>/
"">图像/png、图像/gif、图像/jpeg
“输入”>/WEB-INF//.jsp /WEB-INF//succ.jsp
为了在input.jsp页面上显示文件过滤失败的错误信息,可以使用以下代码在页面上输出错误信息。
实现文件大小过滤与实现文件类型过滤基本相似。 上面的类中虽然没有直接获取上传文件大小的方法,但是它包含了一个File类型的属性,该属性封装了文件域对应的文件内容; 而File类有一个()方法,可以返回文件的大小。 通过比较该文件的大小与允许上传的文件的大小,来决定是否允许该文件上传。
提示:如果需要实现文件大小过滤,可以调用File类的()方法获取上传文件的大小,与允许上传的文件大小进行比较,然后决定是否允许上传。