亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

基于jsp的AJAX多文件上傳的實例

2024-09-05 00:22:43
字體:
來源:轉載
供稿:網友

最近的項目開發中,遇到了一個多文件上傳的問題,即在不刷新頁面的情況下,上傳多個文件至服務器?,F總結分享如下:

本文主要采用了基于jsp的ajax,jquery,servlet等技術。

1.upload.jsp

點擊上傳時,調用對應的fileupload函數,通過ajax將文件異步傳送到servlet中處理。注意在文件上載時,所使用的編碼類型應當是“multipart/form-data”,它既可以發送文本數據,也支持二進制數據上載。

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><base href="<%=basePath%>"><title>Insert title here</title><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/ajaxfileupload.js"></script></head><script language="JavaScript" type="text/javascript">  var buildph=0;  var typeph=0;  var planph=0;  function fileupload1(){    if($("#locationphoto").val()==""){      alert("上傳文件不能為空!");      return false;    }    var file = $("#locationphoto").val();    var pos=file.lastIndexOf("//");var fileName=file.substring(pos+1);//獲得文件名字                                                                                                                                   $.ajaxFileUpload({                                                                                                                                           url:"PictureServlet";,        contentType:"multipart/form-data; text/xml;charset=utf-8",        secureuri:false,        cache: false,//防止緩存        fileElementId:'locationphoto',        dataType: 'text/xml',        success: function (data) {          document.getElementById("locationspan").innerHTML = fileName;          alert(fileName);        },error: function (data, status, e){          alert("fail");        }      }    );  }  function fileupload2(){    if($("#buildingphoto").val()==""){      alert("上傳文件不能為空!");      return false;    }    var file = $("#buildingphoto").val();    var pos=file.lastIndexOf("//");    var fileName=file.substring(pos+1);    buildph++;    $.ajaxFileUpload({                                                                                                                                           url:"PictureServlet";,        contentType:"multipart/form-data; text/xml;charset=utf-8",        secureuri:false,        cache: false,//防止緩存        fileElementId:'buildingphoto',        dataType: 'text/xml',        success: function (data) {          document.getElementById("buildingspan"+buildph).innerHTML = fileName;          alert(fileName);        },error: function (data, status, e){          alert("fail");        }      }    );  }  function fileupload3(){    if($("#typePhoto").val()==""){      alert("上傳文件不能為空!");      return false;    }    var file = $("#typePhoto").val();    var pos=file.lastIndexOf("//");    var fileName=file.substring(pos+1);    typeph++;    $.ajaxFileUpload({                                                                                                                                           url:"PictureServlet";,        contentType:"multipart/form-data; text/xml;charset=utf-8",        secureuri:false,        cache: false,//防止緩存        fileElementId:'typePhoto',        dataType: 'text/xml',        success: function (data) {          document.getElementById("typespan"+typeph).innerHTML = fileName;          alert(fileName);        },error: function (data, status, e){          alert("fail");        }      }    );  }</script><body><form id="form1" name="form1" method="post" action=""> <table width="663" height="316" align="center">  <tr>   <td height="30" colspan="2">樓盤位置圖:    <span id="locationspan" ></span>   <input type="file" name="locationphoto" id="locationphoto" value="this.val()"/>   <input type="button" name="fileLoad1" id="fileLoad1" value="上傳" onClick="fileupload1()"/>   </td>  </tr>   <tr>   <td height="30" colspan="2">樓盤照片:   <span id="buildingspan1" ></span>   <span id="buildingspan2" ></span>   <span id="buildingspan3" ></span>   <span id="buildingspan4" ></span>   <input type="file" name="buildingphoto" id="buildingphoto" value="this.val()"/>   <input type="button" name="fileLoad2" id="fileLoad2" value="上傳" onClick="fileupload2()"/>   </td>  </tr>    <tr>   <td height="30" colspan="2">樓盤戶型圖:    <span id="typespan1" ></span>    <span id="typespan2" ></span>    <span id="typespan3" ></span>    <span id="typespan4" ></span>   <input type="file" name="typePhoto" id="typePhoto" value="this.val()"/>   <input type="button" name="fileLoad3" id="fileLoad3" value="上傳" onClick="fileupload3()"/>   </td>  </tr> </table></form></body></html>

2.PictureServlet.java

通過該servlet接受jsp上傳的數據流,存儲到相應路徑,并解析出文件名。

package com.servlet;import java.io.BufferedOutputStream;import java.io.DataOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.realty.base.action.BuildingAction;/** * Servlet implementation class PictureServlet */@WebServlet("/PictureServlet")public class PictureServlet extends HttpServlet {  private static final long serialVersionUID = 1L;                                                      /**   * @see HttpServlet#HttpServlet()   */  public PictureServlet() {    super();    // TODO Auto-generated constructor stub  }  /**   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)   */  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    // TODO Auto-generated method stub    doPost(request,response);  }  /**   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)   */  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    // TODO Auto-generated method stub     response.setContentType("text/xml");//是xml      response.setHeader("Cache-Control", "no-cache");      response.setCharacterEncoding("UTF-8");      String filepath ="E:/pic/";//文件上傳的路徑,實際開發中一般用相對路徑      String filename = "";      String name="";      ServletInputStream in = request.getInputStream();      byte[] buf = new byte[4048];      int len = in.readLine(buf, 0, buf.length);      String f = new String(buf, 0, len - 1);      while ((len = in.readLine(buf, 0, buf.length)) != -1) {        filename = new String(buf, 0, len,"utf-8");//解決漢字亂碼問題        int j = filename.lastIndexOf("/"");        int s = filename.indexOf("filename");        name=filename.substring(s+10,j);        filename = name;//通過上述處理可以得到上傳的文件名        System.out.println("filename="+filename);                                                                  DataOutputStream fileStream = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(filepath+ filename)));        len = in.readLine(buf, 0, buf.length);        len = in.readLine(buf, 0, buf.length);        while ((len = in.readLine(buf, 0, buf.length)) != -1) {          String tempf = new String(buf, 0, len - 1);          if (tempf.equals(f) || tempf.equals(f + "--")) {            break;          }          else{             fileStream.write(buf, 0, len); // 寫入          }        }        fileStream.close();      }      PrintWriter out=response.getWriter();      String result = filename ;      out.print(result);      out.close();      in.close();                         }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩久久久久| 国产精品高潮粉嫩av| 日韩精品免费视频| 日韩精品免费在线播放| 伊人一区二区三区久久精品| 国产成人激情视频| 国产一区二区三区四区福利| 亚洲黄页网在线观看| 亚洲一区二区黄| 亚洲精品按摩视频| 国产精品露脸自拍| 在线视频欧美日韩精品| 欧美激情xxxxx| 日韩久久免费电影| 日韩中文字幕久久| 国产丝袜一区二区| 欧美成人免费小视频| 亚洲护士老师的毛茸茸最新章节| 久久久久久久一区二区| 日韩中文字幕在线精品| 国产精品一区二区久久久| 国产欧美中文字幕| 国产日韩在线亚洲字幕中文| 国产区精品在线观看| 国产91在线视频| 国产精品久久久久久久久久新婚| 亚洲国产精品成人av| 国产精品吹潮在线观看| 亚洲专区国产精品| 国产不卡一区二区在线播放| 日韩欧美一区二区三区| 欧美性理论片在线观看片免费| 一本色道久久88精品综合| 日韩中文视频免费在线观看| 国产精品自产拍在线观看| 69av成年福利视频| 狠狠久久五月精品中文字幕| 国产在线一区二区三区| 久久影院模特热| 国产69精品久久久久久| 日韩大陆欧美高清视频区| 精品日本高清在线播放| 成人在线小视频| 欧美天天综合色影久久精品| 高清日韩电视剧大全免费播放在线观看| 国产精品成av人在线视午夜片| 91久久久久久久一区二区| 欧美日韩美女在线| 亚洲视频专区在线| 日韩理论片久久| 国产精品久久久精品| 精品亚洲精品福利线在观看| 日韩视频在线一区| 最近2019中文字幕大全第二页| 欧美性生活大片免费观看网址| 国产精品2018| 视频在线观看99| 国产主播在线一区| 久久激情五月丁香伊人| 欧美激情久久久久久| 亚洲精品电影在线| 亚洲精品免费在线视频| 国产精品旅馆在线| 久久大大胆人体| 亚洲色图第一页| 国产一区二区三区丝袜| 久久精品99久久香蕉国产色戒| 亚洲欧美日韩第一区| 欧美成人在线免费视频| 国产日产欧美a一级在线| 在线观看精品自拍私拍| 色狠狠av一区二区三区香蕉蜜桃| 成人欧美一区二区三区黑人| 88国产精品欧美一区二区三区| 久久九九有精品国产23| 亚洲综合一区二区不卡| 亚洲深夜福利视频| 欧美xxxwww| 日本精品久久久久影院| 久久视频在线看| 久久成年人视频| 国产精品成人观看视频国产奇米| 精品久久香蕉国产线看观看gif| 国产精品夜色7777狼人| 亚洲综合精品一区二区| 亚洲精品www久久久久久广东| 亚洲精品资源美女情侣酒店| 欧美猛男性生活免费| 一级做a爰片久久毛片美女图片| 日日噜噜噜夜夜爽亚洲精品| 久久久久免费视频| 国产成人综合精品| 欧美一区在线直播| 亚洲欧美国产视频| 欧美www视频在线观看| 亚洲2020天天堂在线观看| 国产一区二区三区直播精品电影| 欧美日韩在线影院| 欧美性极品xxxx做受| 国产成人精品a视频一区www| 国产精品视频久久| 日韩成人av网| 成人福利网站在线观看11| 欧美日韩国产综合新一区| 国产999精品久久久影片官网| 欧美重口另类videos人妖| 中文字幕亚洲激情| 日韩欧美在线免费| 久久精品99久久久久久久久| 97精品伊人久久久大香线蕉| 欧美激情免费在线| 国内免费久久久久久久久久久| 欧美视频中文字幕在线| 亚洲电影免费观看高清完整版在线| 欧美成人免费全部观看天天性色| 精品中文字幕乱| 久久久久久久久久久亚洲| 亚洲国产精品久久久| 精品香蕉一区二区三区| 国产欧美在线看| 97在线精品视频| 夜夜狂射影院欧美极品| 亚洲综合自拍一区| 亚洲精品99久久久久| 国产精品久久久久久久久久东京| 色综合久久精品亚洲国产| 久久黄色av网站| 91人人爽人人爽人人精88v| 国产一区二区在线免费视频| 欧洲日韩成人av| 久久男人的天堂| 久久99久国产精品黄毛片入口| 久久久亚洲影院你懂的| 国产精品永久免费观看| 一区二区三区美女xx视频| 国产精品永久在线| 日韩一区二区欧美| 91免费综合在线| 91天堂在线观看| 久久精品视频播放| 亚洲精品视频播放| 欧美大全免费观看电视剧大泉洋| 欧美有码在线视频| 97在线观看视频国产| 中文字幕久久精品| www.午夜精品| 久久综合久久美利坚合众国| 国产va免费精品高清在线| 亚洲视频精品在线| 亚洲第一免费网站| 亚洲国产精品yw在线观看| 精品国产区一区二区三区在线观看| 萌白酱国产一区二区| 日韩成人免费视频| 日韩高清av一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 日韩av电影中文字幕| 欧美性猛交xxxx乱大交极品| 91久久久久久国产精品| 国产亚洲在线播放| 国产日韩一区在线| 亚洲激情视频在线| 国外日韩电影在线观看| 色先锋久久影院av|