給你重新寫了一個(gè),直接拷貝到記事本另存為html就可以調(diào)試(Jquery是在線引用的)。
在南充等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),南充網(wǎng)站建設(shè)費(fèi)用合理。
以下代碼在IE8和FF下測(cè)試通過。
另:程序如果有什么問題可以HI我。
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
title New Document /title
script src="" type="text/javascript"/script
script type="text/javascript"
//全局變量
var FileCount=0;//上傳文件總數(shù)
//添加上傳文件按鈕
function addFile(obj)
{
var filePath=$(obj).prev().val();
var FireFoxFileName="";
//FireFox文件的路徑需要特殊處理
if(window.navigator.userAgent.indexOf("Firefox")!=-1)
{
FireFoxFileName=filePath;
filePath=$(obj).prev()[0].files.item(0).getAsDataURL();
}
if(!checkFile(filePath,FireFoxFileName))
{
$(obj).prev().val("");
return;
}
if(filePath.length==0)
{
alert("請(qǐng)選擇上傳文件");
return false;
}
FileCount++;
//添加上傳按鈕
var html='span';
html+='input id="f'+FileCount+'" name="'+FileCount+'" type="file"/?';
html+='input type="button" value="添加" onclick="addFile(this)"/';
html+='/span';
$("#fil").append(html);
//添加圖片預(yù)覽
html='li';
html+='img id="img'+(FileCount-1)+'" src="'+filePath+'" width="100" height="100" style="cursor:pointer;" alt="暫無(wú)預(yù)覽" /';
html+='br/';
html+='a href="#" name="img'+(FileCount-1)+'" onclick="DelImg(this)"刪除/a';
html+='/li';
$("#ImgList").append(html);
}
//刪除上傳文件(file以及img)
function DelImg(obj)
{
var ID=$(obj).attr("name");
ID=ID.substr(3,ID.length-3);
$("#f"+ID).parent().remove();
$(obj).parent().remove();
return false;
}
//檢查上傳文件是否重復(fù),以及擴(kuò)展名是否符合要求
function checkFile(fileName,FireFoxFileName)
{
var flag=true;
$("#ImgList").find(":img").each(function(){
if(fileName==$(this).attr("src"))
{
flag=false;
if(FireFoxFileName!='')
{
alert('上傳文件中已經(jīng)存在\''+FireFoxFileName+'\'!');
}
else
{
alert('上傳文件中已經(jīng)存在\''+fileName+'\'!');
}
return;
}
});
//文件類型判斷
var str="jpg|jpeg|bmp|gif";
var fileExtName=fileName.substring(fileName.indexOf(".")+1);//獲取上傳文件擴(kuò)展名
if(FireFoxFileName!='')//fireFox單獨(dú)處理
{
fileExtName=FireFoxFileName.substring(FireFoxFileName.indexOf(".")+1);
}
//alert(fileExtName);
if(str.indexOf(fileExtName.toLowerCase())==-1)
{
alert("只允許上傳格式為jpg,jpeg,bmp,gif的文件。");
flag=false;
}
return flag;
}
/script
style type="text/css"
.fil
{
width:300px;
}
.fieldset_img
{
border:1px solid blue;
width:550px;
height:180px;
text-align:left;
}
.fieldset_img img
{
border:1px solid #ccc;
padding:2px;
margin-left:5px;
}
#ImgList li
{
text-align:center;
list-style:none;
display:block;
float:left;
margin-left:5px;
}
/style
/head
body
p上傳預(yù)覽圖片:br
div id="fil" class="fil"
span
input id="f0" name="f0" type="file"/
input type="button" value="添加" onclick="addFile(this)"/
/span
/div
/p
div id="ok"
fieldset class="fieldset_img"
legend圖片展示/legend
ul id="ImgList"
!--li
img id="img1" width="100" height="100" style="cursor:pointer;"
br/
a href="#" name="img1" onclick="DelImg(this)"刪除/a
/li--
/ul
/fieldset
/div
/body
/html
[img]!doctype html
html
head
meta charset="UTF-8"
meta name="Generator" content="EditPlus?"
meta name="Author" content=""
meta name="Keywords" content=""
meta name="Description" content=""
titleDocument/title
script src="jquery-3.1.1.min.js"/script
/head
body
h3請(qǐng)選擇圖片文件:JPG/GIF/h3
form name="form0" id="form0"
input type="file" name="file0" id="file0" multiple="multiple" /
brbrimg src="" id="img0" width="120"
/form
/body
script
$("#file0").change(function(){
var objUrl = getObjectURL(this.files[0]) ;
console.log("objUrl = "+objUrl) ;
if (objUrl)
{
$("#img0").attr("src", objUrl);
$("#img0").removeClass("hide");
}
}) ;
//建立一個(gè)可存取到該file的url
function getObjectURL(file)
{
var url = null ;
if (window.createObjectURL!=undefined)
{ // basic
url = window.createObjectURL(file) ;
}
else if (window.URL!=undefined)
{
// mozilla(firefox)
url = window.URL.createObjectURL(file) ;
}
else if (window.webkitURL!=undefined) {
// webkit or chrome
url = window.webkitURL.createObjectURL(file) ;
}
return url ;
}
$('input').on('change',function(){
var value = $(this).val();
value = value.split("\\")[2];
alert(value);
})
/script
/html
你的思路應(yīng)該錯(cuò)了,我給你梳理下吧:
用jquery.imgareaselect實(shí)際上主要是利用它幫你獲得預(yù)覽圖和剪裁數(shù)據(jù)。然后將數(shù)據(jù)發(fā)送后臺(tái)根據(jù)這些數(shù)據(jù)就可以從原始圖片中重新畫出你選擇部分的圖片信息了。
1,你異步上傳后將圖片訪問路徑設(shè)置到剪裁區(qū)img.src;
2,利用imgareaselect的回調(diào)函數(shù)拿到圖片引用img和選擇對(duì)象selection,從img拿到引用圖片width\height,selection拿到左上角的坐標(biāo)x1\y1,右下角的坐標(biāo)x2\y2,選擇區(qū)寬高width\height。
3,將2中拿到的數(shù)據(jù)發(fā)送到后臺(tái),后臺(tái)根據(jù)這些數(shù)據(jù)和原始圖片信息畫出選擇區(qū)的圖像。
jQuery File Upload是上傳文件的一個(gè)插件,不一定是圖片,所以里面沒做預(yù)覽的支持。但是可以直接用jquery簡(jiǎn)單實(shí)現(xiàn)出來(lái),代碼如下:
/*
先在js里擴(kuò)展一個(gè)uploadPreview方法
使用方法:?
div
img?id="ImgPr"?width="120"?height="120"?//div
input?type="file"?id="up"?/
把需要進(jìn)行預(yù)覽的IMG標(biāo)簽外?套一個(gè)DIV?然后給上傳控件ID給予uploadPreview事件
$("#up").uploadPreview({?Img:?"ImgPr",?Width:?120,?Height:?120,?ImgType:?["gif",?"jpeg",?"jpg",?"bmp",?"png"],?Callback:?function?()?{?}});
*/
jQuery.fn.extend({
uploadPreview:?function?(opts)?{
var?_self?=?this,
_this?=?$(this);
opts?=?jQuery.extend({
Img:?"ImgPr",
Width:?100,
Height:?100,
ImgType:?["gif",?"jpeg",?"jpg",?"bmp",?"png"],
Callback:?function?()?{}
},?opts?||?{});
_self.getObjectURL?=?function?(file)?{
var?url?=?null;
if?(window.createObjectURL?!=?undefined)?{
url?=?window.createObjectURL(file)
}?else?if?(window.URL?!=?undefined)?{
url?=?window.URL.createObjectURL(file)
}?else?if?(window.webkitURL?!=?undefined)?{
url?=?window.webkitURL.createObjectURL(file)
}
return?url
};
_this.change(function?()?{
if?(this.value)?{
if?(!RegExp("\.("?+?opts.ImgType.join("|")?+?")$",?"i").test(this.value.toLowerCase()))?{
alert("選擇文件錯(cuò)誤,圖片類型必須是"?+?opts.ImgType.join(",")?+?"中的一種");
this.value?=?"";
return?false
}
if?($.browser.msie)?{
try?{
$("#"?+?opts.Img).attr('src',?_self.getObjectURL(this.files[0]))
}?catch?(e)?{
var?src?=?"";
var?obj?=?$("#"?+?opts.Img);
var?div?=?obj.parent("div")[0];
_self.select();
if?(top?!=?self)?{
window.parent.document.body.focus()
}?else?{
_self.blur()
}
src?=?document.selection.createRange().text;
document.selection.empty();
obj.hide();
obj.parent("div").css({
'filter':?'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',
'width':?opts.Width?+?'px',
'height':?opts.Height?+?'px'
});
div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src?=?src
}
}?else?{
$("#"?+?opts.Img).attr('src',?_self.getObjectURL(this.files[0]))
}
opts.Callback()
}
})
}
});
然后是HTML頁(yè)面進(jìn)行調(diào)用:
!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"
html?xmlns="
head
title圖片上傳預(yù)覽演示/title
script?src="jquery.min.js"?type="text/javascript"/script
script?src="16/uploadPreview.js"?type="text/javascript"/script
script
$(function?()?{
$("#up").uploadPreview({?Img:?"ImgPr",?Width:?120,?Height:?120?});
});
/script
/head
body
div?style="width:500px;margin:0px?auto;"h2圖片上傳預(yù)覽演示/h2
divimg?id="ImgPr"?width="120"?height="120"?//div
input?type="file"?id="up"?/
/div
/body
/html
$("#btnLoadPhoto").upload({ url: "../UploadForms/RequestUpload.aspx?action=photo", type: "json", callback: calla });
//獲得表單元素
HttpPostedFile oFile = context.Request.Files[0];
//設(shè)置上傳路徑
string strUploadPath = "temp/";
//獲取文件名稱
string fileName = context.Request.Files[0].FileName;
補(bǔ)充:JQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascript庫(kù)。它是輕量級(jí)的js庫(kù) ,它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后續(xù)版本將不再支持IE6/7/8瀏覽器。jQuery使用戶能更方便地處理HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)、events、實(shí)現(xiàn)動(dòng)畫效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁(yè)面保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需要定義id即可。