前台:
在网页前台
<form id="form1" runat="server" >
<img id="imgBBS" width="100" height="145" runat="server" />
<input type="file" id="BBSFileUpload" name="BBSFileUpload" onchange="checkFileType(2,this.value)" />
</form>
img显示BBSFileUpload选择的图片,原来的代码
<script>
function checkFileType(type, filePath) {
//alert(filePath);
var start = 0, len = 0;
start = filePath.toString().indexOf('.') + 1;
len = filePath.toString().length;
//没有选择导入文件
if (filePath.toString().length == 0) {
alert("请选择需要导入的文件!");
return false;
}
//文件格式判断
if (filePath.toString().substr(start, len - start).toLowerCase() != "jpg" && filePath.toString().substr(start, len - start).toLowerCase() != "gif") {
alert("导入的文件格式只能是:jpg或者是gif!");
return false;
}
else {
if (type == 1) {
}
else if (type == 2) {
document.getElementById('<%=imgBBS.ClientID %>').src = filePath;
}
}
return true;
}
</script>
filepath获取得到的一直是 x:/fakepath/.....
解决方法:此处用代码解决,(也可进IE安全手动调整,在此不详细说明)
在js中添加一下函数:
function getPath(obj) {
if(obj) {
if (window.navigator.userAgent.indexOf("MSIE")>=1){
obj.select();
return document.selection.createRange().text;
}
else if(window.navigator.userAgent.indexOf("Firefox")>=1) {
if(obj.files) {
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
并修改控件调用函数:
<input type="file" id="BBSFileUpload" name="BBSFileUpload" onchange="checkFileType(2,getPath(BBSFileUpload))" />
后台:用 Request.Files["BBSFileUpload"]获取选择图片的名称一直为空
解决方法:在form中 添加 enctype="multipart/form-data" 如下:
<form id="form1" runat="server" enctype="multipart/form-data">