ExtJS 如何验证上传文件类型

本文介绍如何在ExtJS中实现文件上传功能,并通过validator验证器确保只上传特定类型的文件,例如仅限‘txt’文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ExtJS 如何验证上传文件类型

ExtJS中有封装好的组件来实现文件上传功能,用起来可谓是非常之方便,但是对于很多ExtJS新手来说不知道如何控制文件的上传类型,比如当我们只想让用户上传‘txt’类型的文件时,怎样能够实现当用户上传非‘txt’文件时,给出错误提示呢?对于如何验证文件类型,使用field组件的validator验证器应该是一种较为方便的方法。
ExtJS4.x 如何实现密码验证功能一篇文章中我们曾使用过validator对密码进行验证,今天我们借文件上传功能的实现,给大家详细的分享一下validator的用法。首先给出实现文件上传功能的代码:
JS代码:

01Ext.application({
02 name: 'Demo',
03 appFolder: 'app',
04 launch: function(){
05 Ext.create('Ext.container.Viewport', {
06 margin:'100 0 0 200',
07 items:[{
08 xtype: 'form',
09 title: 'ExtJS 文件上传',
10 width: 400,
11 height: 300,
12 defaults: {
13 margin: '20 0 0 30',
14 },
15 items: [{
16 xtype: 'filefield',
17 name: 'file',
18 fieldLabel: '上传文件',
19 buttonText: '选择文件',
20 labelWidth: 80,
21 width: 300,
22 allowBlank: false,
23 msgTarget: 'under',
24 validator: function(value){
25 var arr = value.split('.');
26 if(arr[arr.length-1] != 'txt'){
27 return '文件不合法!!!';
28 }else{
29 return true;
30 }
31 }
32 },{
33 xtype: 'button',
34 margin: '100 0 0 200',
35 text: '确定上传',
36 handler: function(b,e){
37 var form = b.up().getForm();
38 if(form.isValid()){
39 form.submit({
40 url:'uploadFile.php',
41 success: function(form, action){
42 Ext.MessageBox.alert('提示:',action.result.msg);
43 },
44 failure:function(form, action){
45 Ext.MessageBox.alert('提示:',action.result.msg);
46 }
47 });
48 }
49 }
50 }]
51 }]
52 });
53 }
54});

PHP(uploadFile.php)后台代码:

01<?php
02 $file = $_FILES["file"]["tmp_name"];
03 $file_name = $_FILES["file"]["name"];
04
05 $result = move_uploaded_file($file, "/uploads/".$file_name);
06
07 $data['success'] = $result;
08
09 if($result){
10 $data['msg'] = '上传成功';
11 echo json_encode($data);
12 }else{
13 $data['msg'] = '上传失败';
14 echo json_encode($data);
15 }
16
17 ?>

实现效果图:
ExtJS验证文件上传类型图示
validator详解:
validator是filefiled的一个配置项(所有的文本框组件基本都有这个配置项,用法完全相同),它跟其他配置项最大的不同在于validator的值是一个function,如代码中所示,这个function有唯一的参数value(文本框中的值),函数体中对这个value进行验证如果文件合法在返回true,不合法则返回错误的提示信息,至此验证完毕,validator用起来就是这么简单!
注:对上传文件类型的验证并非只有validator一种方法,使用正则(配置项:regex)可以实现同样的效果,在此特别声明,莫要局限于李坏给出的这一种方法,大家可以多多尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值