读取客户端文件的信息对于Web应用程序来说几乎是不可能的,但我们可以通过JavaScript和IE内置的ActiveX来实现
注意:本例仅能在IE浏览器中正常使用
读取客户端文件的信息对于Web应用程序来说几乎是不可能的,但我们可以通过JavaScript和IE内置的ActiveX来实现
注意:本例仅能在IE浏览器中正常使用
Lance Zhang
代码如下:

Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>validate before upload by Lance Zhang</title>
</head>
<body style="font-family:Calibri">
<form name="Myform">
<p>
<font color="red" size="6">File type :gif,jpg,jpeg,png,bmp</font></p>
<p>
File Size limit:
<input type="text" size="4" value="100" name="fileSizeLimit" id="fileSizeLimit" />
K</p>
<p>
Image Height Limit: <input type="text" size="4" value="100" name="heightLimit" id="heightLimit" />
</p>
<p>
Image Width Limit: <input type="text" size="4" value="100" name="widthLimit" id="widthLimit" />
</p>
<p>
<input type="file" name="photo" onchange="changeSrc(this)" />
Image Preview<img src="about:blank" id="fileChecker" name="fileChecker" alt="test" />
</p>
<p>
<input type="submit" value="submit">
</p>
</form>
<script type="text/javascript">
function CheckFileSize()
{
var limit = document.getElementById("fileSizeLimit").value * 1024;
var width = document.getElementById("widthLimit").value ;
var height = document.getElementById("heightLimit").value;
if (oFileChecker.fileSize > limit)
{
alert("FileSize :"+oFileChecker.fileSize+"byte--too large!");
}
else
{
alert("FileSize :"+oFileChecker.fileSize+"byte--ok");
}
if( oFileChecker.height> height)
{
alert("ImageHeight :"+oFileChecker.height+"--too height!");
}
else
{
alert("ImageHeight :"+oFileChecker.height+"--ok");
}
if(oFileChecker.width> width)
{
alert("ImageWidth :"+oFileChecker.width+"--too width!");
}
else
{
alert("ImageWidth :"+oFileChecker.width+"--ok");
}
return false;
}
var right_type=new Array(".gif",".jpg",".jpeg",".png",".bmp");
var oFileChecker = document.getElementById("fileChecker");
function changeSrc(filePicker)
{
if(!checkImgType(filePicker.value))
{
alert("the file type is not correct");
return;
}
oFileChecker.src = filePicker.value;
}
oFileChecker.onreadystatechange = function ()
{
if (oFileChecker.readyState == "complete")
{
CheckFileSize();
}
}
function checkImgType(fileURL)
{
var right_typeLen=right_type.length;
var imgUrl=fileURL.toLowerCase();
var postfixLen=imgUrl.length;
var len4=imgUrl.substring(postfixLen-4,postfixLen);
var len5=imgUrl.substring(postfixLen-5,postfixLen);
for (i=0;i<right_typeLen;i++)
{
if((len4==right_type[i])||(len5==right_type[i]))
{
return true;
}
}
}
</script>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述