
这样就可以了,获得就是 扩展名
<%
lname="文本字段名字"
la=split(lname,"/")
num=ubound(la)
lb=split(la(num),"")
num2=ubound(lb)
responseWrite(""&lb(num2))
%>
这样获得的是整个文件名
<%
a="c:/windows/windows/windows/textxt"
b=split(a,"/")
a=ubound(b)
responseWrite(b(a))
%>
1、并没有原生的方法控制个数。
2、解决办法:等选择完了用js去计算有多少个,如果超出了就提示。思路如下:
1)你可以在选择完文件后,你的input的onchange事件中,判断eventtargetfileslength就可以知道你的文件多少了。
2)在onchange事件中使用
if (eventtargetfileslength > 10) {
consolelog("太多啦!超过十张啦!");
let files = eventtargetfiles
files = Arrayfrom(files)slice(0,10)
//此处写你的上传接口,参数就是files
consolelog("只上传10张哦",files)
}
这个方法可以限制文件只需要上传选中的前10个。
扩展资料:
1、关于input标签上传文件,还有一个属性是accept。可以限制只能上传类型,这样可以避免用户上传很多非的文件,不好处理。使用方法:<input id="File1" type="file" accept="image/" />
2、调用接口上传文件的方法,可以使用FormData,FromData 是一次 >
eg:
var fileObj = new FromData();
fileObjappend('key',value); // value 可以是一个字符串 string 也可以是一个 blob (代表,file对象)
var xhr = new XML>
参考资料:
MDN技术文档-<input type='file'/>
首先,你的file控件要放到form表单内,其次,每个file控件的name属性应该不同。下面是我修改后的:
<html>
</head>
<script language="javascript" type="text/ecmascript">
var x=1;
//======================
//功能:在表单中input file控件
//参数:parentID---要插入input file控件的父元素ID
// inputID----input file控件的ID
//======================
function createInput(parentID,inputFileID){
var parent=$(parentID);//获取父元素
var div=documentcreateElement("div");//创建一个div容器用于包含input file
x++;
var divName=inputFileID+x;//随机div容器的名称
divid=divName;
var aElement=documentcreateElement("input"); //创建input
aElementname=divName;
aElementtype="file";//设置类型为file
var delBtn=documentcreateElement("input");//再创建一个用于删除input file的Button
delBtntype="button";
delBtnvalue="删除";
delBtnonclick=function(){ removeInput(parentID,divName)};//为button设置onclick方法
divappendChild(aElement);//将input file加入div容器
divappendChild(delBtn);//将删除按钮加入div容器
parentappendChild(div);//将div容器加入父元素
}
//============================
//功能:删除一个包含input file的div 容器
//参数:parentID---input file控件的父元素ID
// DelDivID----个包含input file的div 容器ID
//============================
function removeInput(parentID,DelDivID){
var parent=$(parentID);
parentremoveChild($(DelDivID));
}
//通过元素ID获取文档中的元素
function $(v){return documentgetElementById(v);}
</script>
<body>
<form action="testphp" method="post" enctype="multipart/form-data">
<div align="left" id="div_Pic" style="border:1px solid #CCCCCC">
<input name="PicFile" type="file" id="ShowPicFile">
</div>
<input type="button" onClick="createInput('div_Pic','PicFile')" name="button" id="button" value="+ 继续添加">
<input type="submit" value="提交">
</body>
</html>
然后php就可以通过遍历$_FILES来获得每个上传的文件。下面的简单例子只是列出每个文件的原文件名:
<php
forEach($_FILES as $f){
echo $f["name"]"<br>";
}
>
无法获取本地文件的绝对路径,这里涉及到一个浏览器安全问题。
<input type="file" onchang="javascript:changeFile();" />// 选择文件
function changeFile () {
var e = this;
// 修正IE8下,文件上传异常
var files = efiles;
if (files == undefined) {
return false;
}
// 取得选择文件相关数据信息
var file = files[0], fileName = filename, fileSize = filesize;
// 获取文件后缀名
var fileType = fileNamesubstr(fileNamelastIndexOf(""))toLowerCase();
}
<input name="file_" type="file" id="file_" size="100" />
<input type="button" name="button" id="button" value=" 提 取 " onclick="ch_()"/>
<script>
function ch_(){
var url=documentgetElementById("file_")value;
url=urlsplit("\\");//这里要将 \ 转义一下
alert("文件名 "+url[urllength-1]);
}
</script>
如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:
DiskFileItemFactory difif = new DiskFileItemFactory();dififsetSizeThreshold(321024);dififsetRepository(new File(tmpDir)); //
用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif);
sfusetSizeMax(MAX_SIZE);
List fileList = sfuparseRequest(request);
if ( fileList == null || fileListsize() == 0) { throw new Exception("
导入文件不存在,请检
查");} else { File upLoadFile = null; Iterator fileIterator = fileListiterator();
//得到所有上传的文
件 while (fileIteratorhasNext()) { FileItem fileItem = (FileItem)fileIteratornext(); //
取得上传文件
名 if (fileItemgetContentType() == null) { } else {
//
此为路
径 String path = fileItemgetName(); String t_ext = pathsubstring(pathlastIndexOf("") + 1); //
根据系统时间生成上传后保存的文件
名 String prefix = StringvalueOf(SystemcurrentTimeMillis()); //
保存最终的文件完整路径,保存在工程根目录下的Upload目录
下 String u_name = tmpDir + Fileseparator + prefix + "" + t_ext; //
开始保存文
件 upLoadFile = new File(u_name); fileItemwrite(upLoadFile); } } }
一、Servlet实现文件上传,需要添加第三方提供的jar包
下载地址:
1) commons-fileupload-122-binzip: 点击打开链接
2) commons-io-23-binzip: 点击打开链接
接着把这两个jar包放到 lib文件夹下:
二:文件上传的表单提交方式必须是POST方式,
编码类型:enctype="multipart/form-data",默认是 application/x- >
以上就是关于如何利用ASP获取上传文件的后缀名全部的内容,包括:如何利用ASP获取上传文件的后缀名、js获取HTML5 多文件file选择的数量、JS动态创建的file控件,PHP 怎么获取上传的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)