這篇文章主要為大家展示了“jquery中ajaxfileupload異步上傳插件怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“jquery中ajaxfileupload異步上傳插件怎么用”這篇文章吧。
創(chuàng)新互聯(lián)專注骨干網(wǎng)絡(luò)服務(wù)器租用10余年,服務(wù)更有保障!服務(wù)器租用,服務(wù)器托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。
由于項(xiàng)目需求在上傳頭像是需要使用異步上傳文件,在上傳的過程中需要對(duì)文件進(jìn)行校驗(yàn):規(guī)則如下:寬度和高
度大于200,寬高比要小于2,大小小于2M。
我這里使用的是AjaxFileUploader這個(gè)組件,
這里需要引入兩個(gè)js文件:jQuery、ajaxfileUpload js文件: 后臺(tái)處理程序:UploadPhotoAction.Java 以上是“jquery中ajaxfileupload異步上傳插件怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
//上傳頭像
$("#shangchuan").click(function(){
var file = $("#userPhoto").val();
if(file==""){
alert("請(qǐng)選擇上傳的頭像");
return;
}
else{
//判斷上傳的文件的格式是否正確
var fileType = file.substring(file.lastIndexOf(".")+1);
if(fileType!="png"&&fileType!="jpg"){
alert("上傳文件格式錯(cuò)誤");
return;
}
else{
var url = "/symh/user/uploadPhoto_uploadPhoto.action?nowtime="+new Date().getTime();
$.ajaxFileUpload({
url:url,
secureuri:false,
fileElementId:"userPhoto", //file的id
dataType:"text", //返回?cái)?shù)據(jù)類型為文本
success:function(data,status){
if(data=="1"){
alert("請(qǐng)上傳寬度大于200像素和高度大于200像素的圖片");
}
else if(data=="2"){
alert("請(qǐng)上傳寬高比不超過2的圖片");
}
else if(data=="3"){
alert("請(qǐng)上傳文件大小不大于2M的圖片");
}
else{
$("#uploadImage").hide();
$("#srcImg").attr("src",data);
$("#previewImg").attr("src",data);
$("#cutImage").show();
$("#bigImage").val(data);
cutImage(); //截取頭像
}
}
})
}
}
})
public class UploadPhotoAction {
private File userPhoto;
private String userPhotoContentType;
private String userPhotoFileName;
public File getUserPhoto() {
return userPhoto;
}
public void setUserPhoto(File userPhoto) {
this.userPhoto = userPhoto;
}
public String getUserPhotoContentType() {
return userPhotoContentType;
}
public void setUserPhotoContentType(String userPhotoContentType) {
this.userPhotoContentType = userPhotoContentType;
}
public String getUserPhotoFileName() {
return userPhotoFileName;
}
public void setUserPhotoFileName(String userPhotoFileName) {
this.userPhotoFileName = userPhotoFileName;
}
/**
* 用戶上傳圖像
*/
public void uploadPhoto(){
try {
HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
response.setCharacterEncoding("UTF-8");
FileInputStream fis1 = new FileInputStream(getUserPhoto()); //保存文件
FileInputStream fis2 = new FileInputStream(getUserPhoto()); //判斷文件
int i = this.checkImage(fis2);
if(i==1){
response.getWriter().print("1");
}
else if(i==2){
response.getWriter().print("2");
}
else if(i==3){
response.getWriter().print("3");
}
else { //文件正確、上傳
//得到文件名
String photoName = getPhotoName(getUserPhotoFileName());
FileOutputStream fos = new FileOutputStream(getSavePath()+"\\"+photoName);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis1.read(buffer))>0) {
fos.write(buffer,0,len);
}
//處理文件路徑,便于在前臺(tái)顯示
String imagPathString = dealPath(getSavePath()+"\\"+photoName);
response.getWriter().print(imagPathString);
}
}
catch (IOException e) {
e.printStackTrace();
}
}
/**
* 重新命名頭像名稱:用戶編號(hào)+頭像后綴
*/
public String getPhotoName(String photoName){
//獲取用戶
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
UserBean userBean = (UserBean) request.getSession().getAttribute("userBean");
//獲取文件的后綴
String[] strings = photoName.split("\\.");
String hz = strings[1];
//構(gòu)建文件名
String fileName = userBean.getUserId()+"."+hz;
return fileName;
}
/**
* 獲取上傳路徑
*/
public String getSavePath(){
return ServletActionContext.getServletContext().getRealPath("upload/photos");
}
/**
* 判斷上傳的頭像是否合法
* 規(guī)則:寬度和高度大于200、寬高比小于2、大小小于2M
* 寬度或者高度<200 返回1
* 寬高比>2 返回2
* 大小大于2M 返回 3
* 正確 返回 0
*/
public int checkImage(FileInputStream fis){
try {
BufferedImage image = ImageIO.read(fis);
double width = image.getWidth();
double height = image.getHeight();
if(width<200||height<200){
return 1;
}
else if(width/height>2){
return 2;
}
else if(fis.available()/(1024*1024)>2){
return 3;
}
else {
return 0;
}
} catch (IOException e) {
e.printStackTrace();
}
return 1;
}
/**
* 處理頭像路徑
*/
public String dealPath(String path){
String[] strings = path.split("\\\\");
String string2 = "/";
for (int i = strings.length-4; i < strings.length; i++) {
if(i==strings.length-1){
string2 = string2+strings[i];
}
else {
string2 = string2+strings[i]+"/";
}
}
return string2;
}
}
網(wǎng)站名稱:jquery中ajaxfileupload異步上傳插件怎么用
標(biāo)題路徑:http://weahome.cn/article/igpppo.html