html
<form id="upload_form" name="form1" method="post" target="post_frame" enctype="multipart/form-data">
<iframe name='post_frame' id="post_frame" style="display: none;"></iframe><div id="photoUrlpreview">
<img alt="无图片" src="" style="border: solid 1px #cccccc; width: 186px; height: 140px"
id="photoUrlImg" /></div>
<div>
<input type="file" id="photoUrl" name="uploadFile" style="height:26px;" οnchange="previewImage('photoUrl' )" />
<input type="submit" value="开始上传" name="submit" οnclick="return showmsg('photoUrl');" class="formSubmitButton"/>
</div>
</form>
<div id="photoUrlmsg" style="color: red">
</div>
<form id="upload_form2" name="form2" method="post" target="post_frame" enctype="multipart/form-data">
<iframe name='post_frame' id="post_frame2" style="display: none;"></iframe>
<div id="logoUrlpreview" style="margin-bottom:10px;">
<img alt="无图片" src="" style="border: solid 1px #cccccc; width: 150px; height: 140px"
id="logoUrlImg" /></div>
<div>
<input type="file" id="logoUrl" name="uploadFile" οnchange="previewImage('logoUrl')" style="height:26px;"/>
<input type="submit" value="上传" name="submit" οnclick="return showmsg('logoUrl');" class="formSubmitButton"/>
</div>
</form>
<div id="logoUrlmsg" style="color: red">
</div>
js
var FilePath = {
getFilePath: function (fileBrowser) {
if (navigator.userAgent.indexOf("MSIE") != -1) {
fileBrowser.select();
fileBrowser.blur();
var fp = document.selection.createRange().text;
return fp;
}
else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) return this.getFilePathWithFF(fileBrowser);
else { alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")"); }
},
getFilePathWithFF: function (fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert('由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 signed.applets.codebase_principal_support" (忽略引号).');
return;
}
var fileName = fileBrowser.value;
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
try {
// Back slashes for windows
file.initWithPath(fileName.replace(/\//g, "\\\\"));
} catch (e) {
if (e.result != Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
return;
}
return file.path;
}
};
var imgId = "";
var ffpath = "";
function perImg(o) {
var filepath = ""; //文件路径
var agent = window.navigator.userAgent;
var isIE7 = agent.indexOf('MSIE 7.0') != -1;
var isIE8 = agent.indexOf('MSIE 8.0') != -1;
// if (!o.value.match(/.jpg|.gif|.png|.bmp/i)) {
// alert('图片格式无效!');
// return;
// }
if (agent.indexOf("Firefox") != -1) {
//火狐浏览器判断
ffpath = "file:///" + FilePath.getFilePath(document.getElementById(imgId))//显示预览图
document.getElementById(imgId + 'Img').src = ffpath;
//alert(document.getElementById(imgId + 'Img').src);
var fileSize = GetFileSize(o); //获取文件大小
//alert(fileSize);
if (fileSize > 3 * 1024 * 1024) {
alert("文件不能大于3M");
return false;
} else {
// alert("文件符合大小");
return true;
}
} else {//IE浏览器
document.getElementById(imgId + 'Img').src = o.value; //显示预览图片
var img = new Image(); //动态创建img
// alert(o.value)
img.src = o.value;
img.style.display = "none";
if (img.readyState == "complete") {//已经load完毕,直接打印文件大小
//alert(img.fileSize); //ie获取文件大小
if (img.fileSize > 3 * 1024 * 1024) {
alert("文件不能大于3M");
return false;
} else {
// alert("文件符合大小");
return true;
}
} else {
return img.onreadystatechange = function () {
if (img.readyState == 'complete') {//当图片load完毕
// alert(img.fileSize); //ie获取文件大小
if (img.fileSize > 3 * 1024 * 1024) {
alert("文件不能大于3M");
return false;
} else {
//alert("文件符合大小");
return true;
}
}
}
}
}
}
//FF判断文件大小函数
function GetFileSize(fileObj) {
var image = new Image();
image.dynsrc = ffpath;
var fileSize = image.fileSize || 0;
if (fileSize == 0) {
fileSize = fileObj.files[0].size;
}
return fileSize;
}
function showImage() {
var agent = window.navigator.userAgent;
if (agent.indexOf("MSIE") != -1) {
document.getElementById("imgView").src = document.getElementById("imageUrl").value;
} else {
// var src = FilePath.getFilePath(document.getElementById("imageUrl"));
// src = src.replace(/\\/g, "/")
document.getElementById("imgView").src = "file:///" + FilePath.getFilePath(document.getElementById("imageUrl"));
}
}
function previewImage(id) {
var file = document.getElementById(id);
var MAXWIDTH = 128;
var MAXHEIGHT = 128;
var div = document.getElementById(id + 'preview');
if (file.files && file.files[0]) {
div.innerHTML = '<img id="' + id + 'Img" >';
var img = document.getElementById(id + 'Img');
img.onload = function () {
img.width = 128;
img.height = 128;
}
var reader = new FileReader();
reader.onload = function (evt) { img.src = evt.target.result; }
reader.readAsDataURL(file.files[0]);
}
else {
document.getElementById(id + 'Img').src = document.getElementById(id).value;
}
}
function clacImgZoomParam(maxWidth, maxHeight, width, height) {
var param = { top: 0, left: 0, width: width, height: height };
if (width > maxWidth || height > maxHeight) {
rateWidth = width / maxWidth;
rateHeight = height / maxHeight;
if (rateWidth > rateHeight) {
param.width = maxWidth;
param.height = Math.round(height / rateWidth);
} else {
param.width = Math.round(width / rateHeight);
param.height = maxHeight;
}
}
param.left = Math.round((maxWidth - param.width) / 2);
param.top = Math.round((maxHeight - param.height) / 2);
return param;
}
function validateImg(id) {
var x = document.getElementById(id);
if (!x || !x.value) {
return false;
}
var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i;
if (patn.test(x.value)) {
return true;
} else {
alert("您选择的似乎不是图像文件。");
return false;
}
}
function preview() {
var x = document.getElementById("photoUrl");
if (!validateImg()) {
return;
}
}
function showmsg(id) {
imgId = id;
if (!validateImg(id)) {
return false;
}
var obj = document.getElementById(id);
if (!perImg(obj)) {
return false;
}
document.getElementById(id + "msg").innerHTML = '文件上传中...';
return true;
}
function getUrlCallBack(url) {
document.getElementById(imgId + "msg").innerHTML = '文件上传成功';
window.location.href = window.location.href;
}
<div class="personalHead" id="preview">
<img id="imgView" alt="无图片" style="width: 128px; height: 128px;"/> </div>
<div id="icon" class="f_l" style="padding: 40px 0pt 0pt 77px;">
<div class="iptBtn2"><input οnclick="image_change()" type="button" value="更换头像"></div>
<div id="msg" style="color:red">
</div>
</div>
<div id="m_icon" style="margin-left: 0px;display:none;">
<form id="upload_form" name="form1" method="post" target="post_frame" enctype="multipart/form-data">
<iframe name='post_frame' id="post_frame" style="display: none;">
</iframe>
<input id="imageUrl" type="file" name="uploadFile" style="height:25px;line-height:25px" οnchange="previewImage(this)"/> <br />
<div class="iptBtn2" style="margin-top:10px;">
<input type="submit" value="开始上传" name="submit" οnclick="return showmsg();" /></div><div class="iptBtn2" style="margin-left:10px"><input οnclick="myInfocancel()" type="button" value="取消" style="color:#757575"/></div>
</form>
$(document).ready(function () {
$("#upload_form").attr("action", "/" + domainName + "/Space/" + userName + "/User/Upload");
})
function validateImg() {
var x = document.getElementById("imageUrl");
if (!x || !x.value) {
return false;
}
var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i;
if (patn.test(x.value)) {
return true;
} else {
alert("您选择的似乎不是图像文件。");
return false;
}
}
function preview() {
var x = document.getElementById("imageUrl");
if (!validateImg()) {
return;
}
}
function showmsg() {
if (!validateImg()) {
return false;
}
var obj = document.getElementById('imageUrl');
if (!perImg(obj)) {
return false;
}
document.getElementById("msg").innerHTML = '文件上传中...';
return true;
}
function getUrlCallBack(url) {
// document.getElementById("imgView").src = url;
// document.getElementById("u_images").src = url;
window.location.href = window.location.href;
document.getElementById("msg").innerHTML = '文件上传成功';
myInfocancel()
}
function image_change() {
$("#icon").hide();
$("#m_icon").show();
document.getElementById("msg").innerHTML = '';
}
function myInfocancel() {
$("#icon").show();
$("#m_icon").hide();
}
var ffpath = "";
var FilePath = {
getFilePath: function (fileBrowser) {
if (navigator.userAgent.indexOf("MSIE") != -1) {
fileBrowser.select();
fileBrowser.blur();
var fp = document.selection.createRange().text;
return fp;
}
else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) return this.getFilePathWithFF(fileBrowser);
else { alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")"); }
},
getFilePathWithFF: function (fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert('由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 signed.applets.codebase_principal_support" (忽略引号).');
return;
}
var fileName = fileBrowser.value;
var file = Components.classes["@@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
try {
// Back slashes for windows
file.initWithPath(fileName.replace(/\//g, "\\\\"));
} catch (e) {
if (e.result != Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
return;
}
return file.path;
}
}
function perImg(o) {
var filepath = ""; //文件路径
var agent = window.navigator.userAgent;
var isIE7 = agent.indexOf('MSIE 7.0') != -1;
var isIE8 = agent.indexOf('MSIE 8.0') != -1;
// if (!o.value.match(/.jpg|.gif|.png|.bmp/i)) {
// alert('图片格式无效!');
// return;
// }
if (agent.indexOf("Firefox") != -1) {
//火狐浏览器判断
ffpath = "file:///" + FilePath.getFilePath(document.getElementById("imageUrl"))//显示预览图
document.getElementById("imgView").src = ffpath;
// alert(document.getElementById("imgView").src);
var fileSize = GetFileSize(o); //获取文件大小
//alert(fileSize);
if (fileSize >3*1024 * 1024) {
alert("文件不能大于3M");
return false;
} else {
// alert("文件符合大小");
return true;
}
} else {//IE浏览器
document.getElementById("imgView").src = o.value; //显示预览图片
var img = new Image(); //动态创建img
//alert(o.value)
img.src = o.value;
img.style.display = "none";
if (img.readyState == "complete") {//已经load完毕,直接打印文件大小
// alert(img.fileSize); //ie获取文件大小
if (img.fileSize > 3 * 1024 * 1024) {
alert("文件不能大于3M");
return false;
} else {
// alert("文件符合大小");
return true;
}
} else {
return img.onreadystatechange = function () {
if (img.readyState == 'complete') {//当图片load完毕
//alert(img.fileSize); //ie获取文件大小
if (img.fileSize > 3 * 1024 * 1024) {
alert("文件不能大于3M");
return false;
} else {
//alert("文件符合大小");
return true;
}
}
}
}
}
}
//FF判断文件大小函数
function GetFileSize(fileObj) {
var image = new Image();
image.dynsrc = ffpath;
var fileSize = image.fileSize || 0;
if (fileSize == 0) {
fileSize = fileObj.files[0].size;
}
return fileSize;
}
function showImage() {
var agent = window.navigator.userAgent;
if (agent.indexOf("MSIE") != -1) {
document.getElementById("imgView").src = document.getElementById("imageUrl").value;
}else {
// var src = FilePath.getFilePath(document.getElementById("imageUrl"));
// src = src.replace(/\\/g, "/")
document.getElementById("imgView").src = "file:///" + FilePath.getFilePath(document.getElementById("imageUrl"));
}
}
function previewImage(file) {
var MAXWIDTH = 128;
var MAXHEIGHT = 128;
var docObj = document.getElementById("imageUrl")
var div = document.getElementById('preview');
var imgObjPreview = document.getElementById("imgView");
if (file.files && file.files[0]) {
div.innerHTML = '<img id=imgView>';
var img = document.getElementById('imgView');
img.onload = function () {
img.width = 128;
img.height =128;
}
var reader = new FileReader();
reader.onload = function (evt) { img.src = evt.target.result; }
reader.readAsDataURL(file.files[0]);
}
else {
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById("preview");
//必须设置初始大小
localImagId.style.width = "128px";
localImagId.style.height = "128px";
//图片异常的捕捉,防止用户修改后缀来伪造图片
try {
localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
} catch (e) {
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
imgObjPreview.style.display = 'none';
document.selection.empty();
}
}
function clacImgZoomParam(maxWidth, maxHeight, width, height) {
var param = { top: 0, left: 0, width: width, height: height };
if (width > maxWidth || height > maxHeight) {
rateWidth = width / maxWidth;
rateHeight = height / maxHeight;
if (rateWidth > rateHeight) {
param.width = maxWidth;
param.height = Math.round(height / rateWidth);
} else {
param.width = Math.round(width / rateHeight);
param.height = maxHeight;
}
}
param.left = Math.round((maxWidth - param.width) / 2);
param.top = Math.round((maxHeight - param.height) / 2);
return param;
}