<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 runat="server">
<title></title>
<script type="text/javascript">
function head()
{
var headfile = document.getElementById("head_file");
var imgfile = document.getElementById("head_kan");
if (headfile.files && headfile.files[0])
{
//火狐下的查看
imgfile.src = window.URl.createObjectURL(headfile.files[0]);
}
else
{
//IE下,使用滤镜。
headfile.select();
var imgsrc = document.selection.createRange().text;
var localimgid = document.getElementById("localimg");
//图片异常的捕捉,防止用户修改后缀来伪造图片
try
{
localimgid.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localimgid.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgsrc;
}
catch (e)
{
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
document.selection.empty();
}
return true;
}
</script>
</head>
<body onload="head()">
<form id="form1" runat="server">
<div>
<input type="file" id="head_file" name="head_file" onchange="head()"/>
<div id="localimg" style="width:300px; height:300px;">
<img alt="" src="#" id="head_kan" style="width:300px; height:300px;" />
</div>
</div>
</form>
</body>
</html>
------解决方案--------------------------------------------------------
另外,
function head()
跟页面的head标记冲突,应该改成
function headXZ() {
------解决方案--------------------------------------------------------
这种预览方法是不正确的,IE9是不支持的,最好的方法是上传预览
Chrome也是不支持的
兼容的方法
http://dotnet.aspx.cc/file/Multi-Files-Upload-With-Preview.aspx
或者采用Flash预览
有浏览器不支持,你还写这样的代码干嘛