jquerymobile 下面 form 表單提交 和普通html沒區別,最主要是 <form 要加一個 data-ajax='false' 不然 上傳會失敗javascript
1 html代碼css
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8">
<link rel="stylesheet" type="text/css" href="jquerymobile1.4.0-green/zms-green.css"/>
<link rel="stylesheet" href="jquerymobile1.4.0-green/jQuery.mobile.icons.min.css" />
<link rel="stylesheet" href="jquerymobile1.4.0-green/jquery.mobile.structure-1.4.0.css" />
<link rel="stylesheet" href="css/my.css" />
<script src="commond-plug/jquery.min.js" type="text/JavaScript"></script>
<script src="jquerymobile1.4.0-green/jquery.mobile-1.4.0.min.js" type="text/javascript"></script>
<title>HTML-ZMS</title>
<script>
$(document).ready(function () {
});
</script>
<stytle>
</stytle>
</head>
<body>
<div data-role="page">
<div data-role="header" data-position="fixed" style="background: #ff6932;color: #ffffff;text-shadow: none;">
<h1>Jquery mobile 1.4</h1>
<!-- <a href="#" class="ui-btn">返回</a>-->
</div>
<div class="ui-content">
<div class="file-box">
<form action="../servlet/phonegapUp" method="post" enctype="multipart/form-data" data-ajax="false">
<input type="text" id="zms" name="zms">
<input type="text" id="value1" name="value1">
<input type="text" id="value2" name="value2">
<input type="file" accept="image/png" name="fileField" id="fileField" />
<input type="submit" name="submit" class="btn" value="上22傳" />
</form>
</div>
</div>
<div data-role="footer" data-position="fixed" style="background: #ff6932;color: #ffffff;text-shadow: none;">
<h4>中興長天(南昌)信息技術有限公司</h4>
</div>
</div>
</body>
</html>html
2 服務端代碼 新建一個servlet,修改 dopost代碼java
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
Date date = new Date();//獲取當前時間
SimpleDateFormat sdfFileName = new SimpleDateFormat("yyyyMMddHHmmss");
//SimpleDateFormat sdfFolder = new SimpleDateFormat("yyMM");
String newfileName = sdfFileName.format(date);//文件名稱
String fileRealPath = "";//文件存放真實地址
String firstFileName="";
// 得到容器中上傳文件夾所在的物理路徑 若是按日期存放,則能夠在files\\後面繼續加 sdFolder+"\\"
String savePath = this.getServletConfig().getServletContext().getRealPath("/") + "files\\";
/* System.out.println("路徑" + savePath+"; name:"+name); */
System.out.println("路徑" + savePath);
File file = new File(savePath);
if (!file.isDirectory()) {
file.mkdirs();
}
try {
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("UTF-8");
// 獲取多個上傳文件
List fileList = fileList = upload.parseRequest(request);
// 遍歷上傳文件寫入磁盤
Iterator it = fileList.iterator();
while (it.hasNext()) {
FileItem obit = (FileItem)it.next();
//若是是普通 表單參數
if(obit.isFormField()){ //普通域,獲取頁面參數
String field = obit.getFieldName();
if(field.equals("value1"))
{
System.out.println(obit.getString("UTF-8"));
}
else if(field.equals("value2")){
System.out.println(obit.getString("UTF-8"));
}
}
// 若是是 多媒體
if(obit instanceof DiskFileItem){
DiskFileItem item = (DiskFileItem) obit;
// 若是item是文件上傳表單域
// 得到文件名及路徑
String fileName = item.getName();
if (fileName != null) {
firstFileName=item.getName().substring(item.getName().lastIndexOf("\\")+1);
String formatName = firstFileName.substring(firstFileName.lastIndexOf("."));//獲取文件後綴名
fileRealPath = savePath + newfileName + formatName;//文件存放真實地址
BufferedInputStream in = new BufferedInputStream(item.getInputStream());// 得到文件輸入流
BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(new File(fileRealPath)));// 得到文件輸出流
Streams.copy(in, outStream, true);// 開始把文件寫到你指定的上傳文件夾
//上傳成功,
if (new File(fileRealPath).exists()) {
//虛擬路徑賦值
// fileRealResistPath=sdfFolder.format(date)+"/"+fileRealPath.substring(fileRealPath.lastIndexOf("\\")+1);
//保存到數據庫
System.out.println("上傳成功了, 您還能夠作其餘操做");
//System.out.println("虛擬路徑:"+fileRealResistPath);
response.getWriter().write(fileRealPath.substring(fileRealPath.lastIndexOf("\\")+1));
}
}
}
}
} catch (org.apache.commons.fileupload.FileUploadException ex) {
ex.printStackTrace();
System.out.println("沒有上傳文件");
return;
}
/* response.getWriter().write("1"); */
}mysql
data-ajax="false" 是重點,終於解決了jquery