我想做一个按钮,点击 先判断是否是.jpg或者是.image 档案,如果是的话,就直接在网页上预览图片, 以下是网友告诉我的方法.
HyperLink1.Text="点击下载";
HyperLink1.NavigateUrl="~/ScenicImg/"+FileUpload1.FileName;
问题是文件名是lblsp46.Text , 文件扩展名是lblsp20.Text, 这个js语言怎么写, 或者用jquery也行, 如果用jquery 这个语言怎么写呢,
<script type="text/javascript">
function Getyl() {
if (document.getElementById("lblsp20").value == ".jpg" ) {
var sp19 = document.getElementById("lblsp19").value;
HyperLink1.NavigateUrl = "~/UploadFile2/" + sp19;
}
}
</script>
如上写不起效果,该如何改呢
直接文件名字后缀校验 不就行了?
比如使用正则表达式
var picReg = /(.JPEG|.jpeg|.JPG|.jpg|.GIF|.gif|.BMP|.bmp|.PNG|.png){1}/; if(!picReg.test(_v)){ alert("请选择正确的图片格式!"); return false; }
我正好写过纯JS的代码,仅供参考。这段代码,提供了上传预览的基本样例:
你需要自己调试下,因为是截取(网页代码不完整,而且有一些图片路径都需要自己修改。不要上来就说,你的代码怎么不好使哈!)只是提供思路!
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<script type="text/javascript">
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = func;
}else{
window.onload = function(){
oldonload();
func();
}
}
}
</script>
</head>
<body>
<!-- **************************************************************************** -->
<p class="h3">示例内容</p>
<div class="container">
<div class="row">
<div class="col-md-4">
<input type="text" class="form-control">
</div>
<button type="button" class="btn btn-primary col-md-1" >模板</button>
</div>
</div>
<script type="text/javascript">
</script>
<hr>
<!-- **************************************************************************** -->
<p class="h3">实时预览上传的图片</p>
<div class="container">
<div class="row">
<div class="col-md-4">
<div id="previewIng"><img src="" class="img-thumbnail" id="previewImgSrc"></div>
<input type="file" class="form-control" id="upPreviewImg">
</div>
</div>
</div>
<script type="text/javascript">
var funcPreView = function(){
var upPreviewImg = function(options){
var _e = options.e;
var preloadImg = null;
_e.onchange = function(){
var _v = this.value;
var _body = document.body;
var picReg = /(.JPEG|.jpeg|.JPG|.jpg|.GIF|.gif|.BMP|.bmp|.PNG|.png){1}/;
if(!picReg.test(_v)){
alert("请选择正确的图片格式!");
return false;
}
if(typeof FileReader != 'undefined'){
var reader = new FileReader();
var _file = this.files[0];
reader.onload = (function(file){
return function(){
options.previewImgSrc.setAttribute("src",this.result);
options.previewImgSrc.style.display = "block";
}
})(_file);
reader.onerror = function(){
alert("文件读取数据出错!");
}
reader.readAsDataURL(_file);
}else{
alert("不支持!");
}
}
}
upPreviewImg({
"e":document.getElementById("upPreviewImg"),
"previewImgSrc":document.getElementById("previewImgSrc")
});
};
addLoadEvent(funcPreView);
</script>
这个没法严格的判断吧?只能你自己规定好,什么样的字符串格式会是图片。
还有,如果我没猜错的话,你的后端应该是asp.net?这种后端代码和前端js代码糅合在一起?当然我不太理解asp.net的编码风格,不过个人认为揉在一起很容易出问题。
在H5的浏览器中可以通过FileReader这个东西来做上传预览,我这里做了一个js组件来实,但在ie低版本里,就相当之麻烦,要Active,所以还不如传到服务器后再预览,
demo请看:http://www.cnblogs.com/tianxiangbing/p/mobile-photo-preview.html