利用ajaxSubmit無重新整理非同步上傳匯入Excel,無重新整理提交表單
前臺頁面程式碼:
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/jquery.form.js"></script>
<form method="post" enctype="multipart/form-data" action="ImportExcel_DuiZhang.jsp" id="formImport"> <table width="100%" cellpadding="5px" id="diaTable" style="display:none;"> <tr> <td> <input type="file" name="uploadFile" id="uploadFile" style="width:290px" /> </td> </tr> <tr> <td style="text-align:center;padding-top:10px;"> <a href="javascript:submitImport()" id="btnOK">確定</a> </td> </tr> </table> </form>
<script> function submitImport(){ var epath = $('#uploadFile').val(); if(epath==""){ alert( '匯入檔案不能為空!'); return; } if(epath.substring(epath.lastIndexOf(".") + 1).toLowerCase()=="xlsx"){ alert( '03以上版本Excel匯入暫不支援!'); return; } if (epath.substring(epath.lastIndexOf(".") + 1).toLowerCase()!="xls") { alert( '匯入檔案型別必須為excel!'); return; } $('#btnOK').linkbutton('disable'); $("#formImport").ajaxSubmit({ type: "post", dataType: "script", // 'xml', 'script', or 'json' (expected server response type) url: "ImportExcel_DuiZhang.jsp", success: function (data1) { $('#btnOK').linkbutton('enable'); if(data1.replace(/\s+/g,"")=="1"){ alert('匯入成功'); location.reload(); }else{ alert(data1); } }, error: function (msg) { $('#btnOK').linkbutton('enable'); alert("檔案上傳失敗"); } }); } </script>
ajaxSubmit 部分引數說明
dataType:期望返回的資料型別。null、“xml”、“script”或者“json”其中之一。dataType提供一種方法,它規定了怎樣處理伺服器的響應。這個被直接地反映到jQuery.httpData方法中去。下面的值被支援:
'xml':如果dataType == 'xml',將把伺服器響應作為XML來對待。同時,如果“success”回撥方法被指定, 將傳回responseXML值。
'json':如果dataType == 'json', 伺服器響應將被求值,並傳遞到“success”回撥方法,如果它被指定的話。
'script':如果dataType == 'script', 伺服器響應將求值成純文字。
後臺處理程式碼
<%@ page import="java.util.*" %>
<%@ page import="jxl.*"%>
<%@ page import="jxl.write.*"%>
<%@ page import="java.io.*"%>
<%@ page import="org.apache.commons.fileupload.RequestContext"%>
<%@ page import="org.apache.commons.fileupload.servlet.ServletRequestContext"%>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.FileItem"%>
try{
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
// 宣告檔案域
FileItem fileItem = null;
// 從 HTTP servlet 獲取 fileupload 元件需要的內容
RequestContext requestContext = new ServletRequestContext(request);
// 判斷是否包含 multipart 內容,如果不包含,則不進行任何處理。
if (ServletFileUpload.isMultipartContent(requestContext))
{
// 建立基於磁碟的檔案工廠
DiskFileItemFactory factory = new DiskFileItemFactory();
// 設定直接儲存檔案的極限大小,一旦超過則寫入臨時檔案以節約記憶體。預設為 1024 位元組
factory.setSizeThreshold(1024 * 1024);
factory.setRepository(new File(request.getSession().getServletContext().getRealPath("\\")));
// 建立上傳處理器,可以處理從單個 HTML 上傳的多個上傳檔案。
ServletFileUpload upload = new ServletFileUpload(factory);
// 最大允許上傳的檔案大小
upload.setSizeMax(10 * 1024 * 1024);
try {
// 處理上傳
List items = upload.parseRequest(requestContext);
// 由於提交了表單欄位資訊,需要進行迴圈區分。
for (int i = 0; i < items.size(); i++) {
FileItem fi = (FileItem) items.get(i);
// 如果不是表單內容,取出 multipart。
if (!fi.isFormField()) {
fileItem = fi;
// 一次只上傳單個檔案
break;
}
}
Workbook workbook = null;
Cell header = null;
Cell cell = null;
String currentColumn = "";
InputStream uploadedStream = fileItem.getInputStream();
workbook = Workbook.getWorkbook(uploadedStream);
Sheet sheet = workbook.getSheet(0);
//返回去掉空行的記錄數
int nullCellNum;//統計空格數
int row = sheet.getRows();
int column = sheet.getColumns();
int actualRows = row;
for (int m = 0; m < row; m++) { //統計行中為空的單元格數
nullCellNum = 0;
for (int n = 0; n < column; n++) {
String val = sheet.getCell(n, m).getContents();
val = StringUtils.trimToEmpty(val);
if (StringUtils.isBlank(val))
nullCellNum++;
}
if (nullCellNum >= column) { //如果nullCellNum大於或等於總的列數
actualRows--; //行數減一
}
}
String dzTitle=sheet.getCell(1, 1).getContents().trim();
String lifnr=sheet.getCell(1, 2).getContents().trim();
//補0
try{
lifnr="0000"+Integer.parseInt(lifnr);
}catch(Exception ep1){
}
if(null==dzTitle||"".equals(dzTitle)){
out.print("對賬單標題為空");
}else if(null==lifnr||"".equals(lifnr)){
out.print("物流商編碼為空");
}else{
//一系列處理過程......
out.print("1");
}
}
catch (Exception ex) {
out.print("Exception2:"+ex.getMessage());
}
}
else{
out.print("讀取檔案失敗");
}
}catch (Exception ex) {
out.print("Exception3:"+ex.getMessage());
}
相關推薦
利用ajaxSubmit無重新整理非同步上傳匯入Excel,無重新整理提交表單
前臺頁面程式碼: <script type="text/javascript" src="/js/jquery.js"></script> <script type="text/javascript" src="/js/jquery.fo
nodejs 處理表單上傳檔案時,獲取不到表單資料
from表單上傳檔案時,為保證檔案正確的編碼格式,我們會為form設定 enctype="multipart/form-data" 屬性,但此時我們又不能獲取到input傳遞的值。 表單中enctyp
from表單實現無跳轉上傳文件,接收頁面後臺數據
spl white lis not left alt tro pos ftp 實現無跳轉發送表單數據、文件,並能接收後臺返回的數據。 主要技術要點: 1、form表單添加target屬性,指定一個iframme的name;form表單提交後在iframe內嵌窗口
Java實現從網頁上傳匯入excel資料到資料庫
一晃已經是十月份的最後一天了,時間過得很快... 專案中通過excel往資料庫批量匯入的功能頗為常見,所以今天整理出來一份簡單的例子,為了以後方便使用,同時也為大家實現功能作為一個參考
jquery form外掛 上傳/匯入excel-ajax驗證
jquery-1.8.2.min.js jquery.form-3.26.0.js jquery.validate.min-1.7.js bootstrap-v2.2.2 bootstrap.file-input.js 上傳檔案樣式和外掛使用: bootstrap + bootstrap.file
ajax非同步上傳檔案以及匯入excle檔案到資料庫
html程式碼: <div class="sc_btn_box"> <input type="file" class="sc_btn" id="file"> <span class="file_uploader">選擇</span>
thinkPHP利用ajax非同步上傳圖片並顯示、刪除
近來學習tp5的過程中,專案中有個發帖功能,選擇主題圖片。如下: 利用原始的檔案上傳處理,雖然通過原始js語句能實時顯示上傳圖片,但是這樣的話會涉及很多相容問題。使用ajax技術,實現選擇性刪除所選圖片功能,並不會有相容問題。 表單檔案form: <form method="po
【前端】利用ajax實現偽檔案非同步上傳下載
利用ajax可以實現很酷的效果,在不重新整理頁面的情況下提交表單、修改資料狀態等等,可是如果表單裡還有input:file可就慘了,ajax不支援檔案的處理啊! ajax是使用了瀏覽器內部的XmlHttpRequest物件來傳輸XML資料的。既然是Xml的資料傳輸,那麼傳輸
利用formdata非同步上傳圖片並預覽圖片
<img src="" style="width: 120px;margin-bottom: 5px" id="previewimg0"> <form action="" enctype="multipart/form-data" id="form0"> <input
jquery+ajax+servlet實現無重新整理圖片上傳
需要藉助ajaxfileupload.js來實現ajax圖片上傳功能。 html部分: <body> <input id="img" type="file" name="img">//id和name屬性必須都有且同名。。。 <input type="but
非同步上傳圖片-ajaxSubmit提交
非同步上傳是一個很蛋疼的問題,今天就來說說非同步上傳的故事 第一步 引入ajaxSubmit這個js外掛 <!--非同步提交圖片--> <script src="__PUBLIC__/js/jquery.ajaxSubmit.js">&l
AjaxUpLoad.js實現無重新整理檔案上傳
string newFileName = nowTime.Year.ToString() + nowTime.Month.ToString() + nowTime.Day.ToString() + nowTime.Hour.ToString() + nowTime.Minute.ToString() + no
asp.net ajax 和 asp.net 2.0中的fileupload合力打造無重新整理檔案上傳控制元件
{20 bool fileOK =false;21 //獲取根檔案絕對路徑22string path = Server.MapPath("~/UpLoad/");23 //如上傳了檔案,就判斷檔案格式24 FileUpload FU = FileUplo
jQuery + ajax + ashx實現無重新整理檔案上傳
主要分享的是jQuery + ajax的資料提交技巧,至於是不是.NET框架關係不大,大家可以用自己所用的框架處理上傳操作。 前臺介面程式碼: <form id="form1" action="#" runat="server" enctype="multipart
使用ajaxSubmit非同步上傳圖片並展示
頁面在選擇圖片完成後將圖片上傳到圖片伺服器,並在頁面顯示圖片,然後將上傳圖片的路徑載入到隱藏域中,提交表單時將路徑儲存到資料庫。 頁面程式碼: <script> function sub
SpringMVC結合ajaxfileupload.js實現ajax無重新整理檔案上傳
一、spring mvc配置 1、web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xm
PHP Ajax JavaScript 實現 無重新整理附件上傳
普通表單 前端頁面 後臺處理 帶有檔案的表單 重新整理方式 前端介面 後臺頁面 無重新整理方式 總結 對一個網站而言,有一個基本的不可缺少的功能,那就是檔案上傳。使用PHP預壓來實現檔案上傳可謂是有得天獨厚的優勢的,那麼今天,就
[asp.net] ajax無重新整理檔案上傳與FormData使用介紹
前端主要進行瀏覽器類別判斷,如果是chrome瀏覽器,就使用ajax檔案上傳方式,如果時ie或者其他瀏覽器,就採用傳統的表單上傳檔案。通常我們提交表單時,會將form中的所有表單元素的name和value組成一個queryString,這就是為什麼表單元素可以沒有Id但是不能
ajax+php無重新整理檔案上傳(ajaxuploadfile)
檔案上傳的表單格式 <form id="uploadform" enctype="multipart/form-data" name="uploadform" method="post" > <input id="fileT
jquery 無刷新上傳的小function
hidden eth 錯誤提示 control isp read document label move function zll_up(click_id,up_url,text_id,show_id){ this.create = function(){}