<input id="sub_Import" type="submit" value="导入" />
js中function getFileSize() {
var btnsave = document.getElementById("sub_Import")
btnsave.disabled = true
var filepath = ""
var fileupload = document.getElementById("file_Up")
if (fileupload.value.length < 5) {
alert('请选择文件!')
return
}
var agent = window.navigator.userAgent
if (agent.indexOf("Firefox") >= 1) {
var maxsize = 4 * 1024 * 1024
var size = fileupload.files[0].size
if (size > parseInt(maxsize)) {
alert("文件超过大小!")
return false
}
else {
btnsave.disabled = false
return true
}
}
else {
fileupload.select()
fileupload.blur()
filepath = document.selection.createRange().text
try {
var fso, f, fname, fsize
var flength = 4 * 1024 //设置上传的文件最大值(单位:kb),超过此值则不上传。
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.GetFile(filepath) //文件的物理路径
fname = fso.GetFileName(filepath) //文件名(包括扩展名)
fsize = f.Size //文件大小(bit)
fsize = fsize / 1024
//去掉注释,可以测试
alert("文件路径:" + f)
alert("文件名:" + fname)
alert("文件大小:" + fsize + "kb")
if (fsize > flength) {
alert("上传的文件到小为:" + fsize + "kb,\n超过最大限度" + flength + "kb,不允许上传 ")
return false
}
else {
btnsave.disabled = false
return true
}
} catch (e) {
alert(e + "\n 跳出此消息框,是由于你的activex控件没有设置好,\n" +
"你可以在浏览器菜单栏上依次选择\n" +
"工具->internet选项->\"安全\"选项卡->自定义级别,\n" +
"打开\"安全设置\"对话框,把\"对没有标记为安全的\n" +
"ActiveX控件进行初始化和脚本运行\",改为\"启动\"即可")
return false
}
}
}
在firefox上,input(type=file)默认获取到的value值就是文件名。在IE上,input(type=file)默认获取到的value值是路径。
因此用js来获取fileupload中的上传文件的文件名需要多方面考虑。
示例代码:
<form action="" method="get" onSubmit="return false">
<input type="text" name="test" id="test">
<input type="file" name="testFile" onChange="if(this.value)insertTitle(this.value)">
<input type="submit" value="提交">
</form>
<script language="javascript">
function insertTitle(path){
var test1 = path.lastIndexOf("/") //对路径进行截取
var test2 = path.lastIndexOf("\\") //对路径进行截取
var test= Math.max(test1, test2)
if(test<0){
document.getElementById("test").value = path
}else{
document.getElementById("test").value = path.substring(test + 1)//赋值文件名
}
}
</script>