`
汉唐铁骑破虏用刀
  • 浏览: 31989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js验证上传文件类型,js操作本地文件

阅读更多
js的一些基本应用,时间久了容易忘记。先记这吧
 
 function lastname(){
		 //获取欲上传的文件路径
		var filepath = document.getElementById("img").value; 
		//为了避免转义反斜杠出问题,这里将对其进行转换
		var re = /(\\+)/g; 
		var filename=filepath.replace(re,"#");
		//对路径字符串进行剪切截取
		var one=filename.split("#");
		//获取数组中最后一个,即文件名
		var two=one[one.length-1];
		//再对文件名进行截取,以取得后缀名
		var three=two.split(".");
		 //获取截取的最后一个字符串,即为后缀名
		var last=three[three.length-1];
		//添加需要判断的后缀名类型
		var tp ="jpg,gif,bmp,JPG,GIF,BMP,png";
		//返回符合条件的后缀名在字符串中的位置
		var rs=tp.indexOf(last);
		//如果返回的结果大于或等于0,说明包含允许上传的文件类型
		if(rs!=-1){
		 return true;
		 }else{ 
		 alert("您选择的上传文件不是有效的图片文件!"); 
		 //$('#subbutton').attr("disabled", "disabled");
		 return false;
	  }
  }


js操作本地文件,这个需要更改浏览器的安全设置才能有效果的,前面的代码是对字符串进行的base64编码
function base64encode(str) {
    var out, i, len;
    var c1, c2, c3;
    len = str.length; 
    i = 0;
    out = "";
    while(i < len) {
	 c1 = str.charCodeAt(i++) & 0xff;
	 if(i == len)
	 {
	     out += base64EncodeChars.charAt(c1 >> 2);
	     out += base64EncodeChars.charAt((c1 & 0x3) << 4);
	     out += "==";
	     break;
	 }
	 c2 = str.charCodeAt(i++);
	 if(i == len)
	 {
	     out += base64EncodeChars.charAt(c1 >> 2);
	     out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
	     out += base64EncodeChars.charAt((c2 & 0xF) << 2);
	     out += "=";
	     break;
	 } 
	 c3 = str.charCodeAt(i++);
	 out += base64EncodeChars.charAt(c1 >> 2);
	 out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
	 out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
	 out += base64EncodeChars.charAt(c3 & 0x3F);
 }
    return out;
}

function getInfo(){
	var declin=';'; 
	var imei;
	var curr_staff_num;
	var update_staff_num;
	var password;
	var ip;  
	var port;  
	var resendTime;
	var dowmloadPage;
	var commandPage;
	var dataTransportPage;  

	imei = document.forms[0].imei.value;   
	curr_staff_num ='<bean:write name="te" property="terminal_no" scope="request"/>';    
	update_staff_num = document.forms[0].terminal_no.value;  
	password =  '<bean:write name="constant" property="constant_password" scope="request"/>';
	ip = '<bean:write name="constant" property="constant_ip" scope="request"/>';
	port = '<bean:write name="constant" property="constant_port" scope="request"/>';  
	resendTime = '<bean:write name="constant" property="constant_connection_time" scope="request"/>';
	dowmloadPage = '<bean:write name="constant" property="constant_down_address" scope="request"/>';
	commandPage = '<bean:write name="constant" property="constant_command_address" scope="request"/>';
	dataTransportPage = '<bean:write name="constant" property="constant_location_address" scope="request"/>';
	
	var str = imei+declin+curr_staff_num+declin+update_staff_num+ 
				declin+password+declin+ip+declin+port
				+declin+resendTime+declin+dowmloadPage+
				declin+commandPage+declin+dataTransportPage+declin;
	return str; 
	//alert(str);  
} 
//保存至移动设备
function saveToTermianl(){  
		var str = getInfo(); 
		//alert(str); 
		var dealStr = base64encode(str);
		//alert(dealStr); 
                 //操作本地文件的对象
		var fso = new ActiveXObject("Scripting.FileSystemObject");  
		 
		var drives = "c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r"; //,s,t,u,v,w,x,y,z";
		var array = drives.split(","); 
		 
		for(var i =0 ;i<array.length;i++){ 
			var filepath = array[i]+":\\QinYiApp\\Settting\\profile.bin";  
			alert(filepath);     
			if (fso.FileExists(filepath)){      
			   	 //alert("fold exists");     
			    var f1 = fso.CreateTextFile(array[i]+":\\QinYiApp\\Settting\\SettingInfo.txt", true);
			    f1.WriteLine(dealStr);       
			    f1.close(); 
			    alert('文件已成功写入终端,请断开终端与电脑连接并重启终端!');
			    document.forms[0].submit(); 
			    return;
			 } 
		}  
		alert('修改设置失败!没发现终端设备请将终端连接好电脑,并选择存储模式!');
		window.close();
}
分享到:
评论

相关推荐

    本地JS做MD5验证时所需的JS文件

    本地JS做MD5验证时所需的JS文件,主要的两个JS文件不容易找到,有其它需要的请联系我

    图片上传(图片预览+文件类型验证)

    超级方便好用的工具,拿着代码就可以用,纯js技术实现文件预览与文件类型判断!

    【JavaScript源代码】Express实现登录验证.docx

    Express实现登录验证  本文实例为大家分享了Express实现登录验证的具体代码,供大家参考,具体内容如下 Express实现的路由登录,这套代码适用于很多场景,特此记录,... // 配置文件上传的路径,此处为本地地址 con

    程序天下:JavaScript实例自学手册

    19.1 判断上传文件的类型 19.2 改变上传文件控件的样式 19.3 上传文件一次完成 19.4 使用正则判断文件扩展名 19.5 多附件上传效果 19.6 上传控件内容清空 19.7 textarea显示记事本文件的内容 19.8 使用FSO读写文本...

    《程序天下:JavaScript实例自学手册》光盘源码

    19.1 判断上传文件的类型 19.2 改变上传文件控件的样式 19.3 上传文件一次完成 19.4 使用正则判断文件扩展名 19.5 多附件上传效果 19.6 上传控件内容清空 19.7 textarea显示记事本文件的内容 19.8 使用FSO读写文本...

    C#基类库(苏飞版)

    FTPClient--FTP操作帮助类,FTP上传,FTP下载,FTP文件操作,FTP目录操作 FTPHelper FTPHelper-FTP帮助类,FTP常用操作方法,添加文件,删除文件等 FTPOperater FTP操作帮助类,方法比较多,比较实用 6.JS操作...

    autoJS1688示例.zip

    几十种类型的UI脚本,抖音、QQ、微信、陌陌、支付宝等自动化操作的脚本、还有部分协议列表,HTTP协议(POST、GET)上传下载,接码模块,百度文字识别api模块,文件操作模块:txt文本读一行删一行,等等其他例子 ...

    php网络开发完全手册

    6.3 本地文件的操作实例——小型留言本 96 6.3.1 留言发表模块 96 6.3.2 浏览模块 98 6.4 远程文件的操作实例 99 6.5 文件的上传与下载 99 6.5.1 文件的上传 99 6.5.2 文件的下载 100 6.6 小结 101 第7章 字符的处理...

    ctf总结.md

    读取敏感文件:如直接../../../../../etc/passwd来读取本地文件内容,其他敏感文件的读取是类似的 包含Apache日志文件(应该不会考) 远程包含shell 使用PHP封装协议读取文件和写入PHP文件 配合文件上传漏洞: ...

    Ewebeditor V5.5 易讯网络加强版

    因为除非他改后台的上传文件类型,不然如asp类文件他上传不上去,所以在初始上传时就进行类型过滤! 8、同5.2一样,本次uploadfile.asp增加了上传文件内容检测,不过本次更改更新了很多,发现有恶意代码文件时则...

    share:类似于WeTransfer本地的dockerize文件共享应用

    另一个可以禁用的操作是存储桶删除,在这种情况下,您应该上传一个“ .deny_delete”文件。 “ .token_upload”文件可用于设置遵循标准的承载授权令牌。配置以下环境变量可用于更改共享的默认行为: PORT-定义...

    JAVA上百实例源码以及开源项目

    摘要:Java源码,文件操作,数据压缩,文件传输  Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、...

    基于JavaScript的电弧故障检测系统Web端设计实现源码(本科毕设).zip

    基于JavaScript的电弧故障检测系统Web端设计实现源码(本科毕设) 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关专业(如...

    asp.net专家疑难解答200问源码

    第11章 文件操作 200.如何读取、修改文本文件 201.如何在ASP.NET中实现文件的上传 202.如何在ASP.NET中实现多文件的上传 203. 如何取得指定目录下的文件列表 204.如何在ASP.NET中创建日志文件 205.如何取得...

    vuetest:一个广告管理网站,在iframe中具有用户身份验证,引导ui,上传器,所见即所得编辑器-Vue.js开发

    VUE TEST BY Sjerrys文件上传器,用户身份验证,文本编辑器,引导程序。 可以与任何种类的vuetest一起使用。此项目仅适用于普通话。VUE TEST BY Sjerrys文件上传器,用户身份验证,文本编辑器,引导程序。 可以与...

    ASP200问.EXE

    145.如何通过XMLDom在服务器端操作XML文件(示例一) 145.如何通过XMLDom在服务器端操作XML文件(示例二) 146.如何使用XML实现不刷新页面查询数据库 147.如何把HTML表单提交的数据转化成XML文件(第一步) 147.如何...

    JAVA上百实例源码以及开源项目源代码

    摘要:Java源码,文件操作,数据压缩,文件传输  Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、...

    dcat-validator:使用dcat-validator.js验证DCAT的应用程序

    可以通过手动插入文本,通过从本地计算机选择文件或插入URI来上传文件来完成验证。 为了使用package.json安装正确的node_modules(例如bootstrap,jQuery,...),您必须已安装npm。 您可以在此站点上找到所有npm...

Global site tag (gtag.js) - Google Analytics