h5里js與servlet完成文件上傳的完成步驟
發(fā)表時間:2023-12-24 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]這次教大家的是在H5里如何用JS和servlet來實(shí)現(xiàn)文件上傳,不過有一個前提條件,必須要是h5和jsp3.0版本,因為用到了新屬性,獲取file對象和后臺得到part對象。下面給大家看一個案列前臺jsp<%@ page language="java" contentTy...
這次教大家的是在H5里如何用JS和
servlet來實(shí)現(xiàn)
文件上傳,不過有一個前提條件,必須要是h5和jsp3.0版本,因為用到了新屬性,獲取file對象和后臺得到part對象。
下面給大家看一個案列
前臺jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
</head>
<body>
<p>
name:<input type="text" id="name"/>
文件:<input type="file" id="file"/>
<br>
<button id="btu" onclick="btu()">提交</button>
</p>
</body>
<script>
function btu(){
var name=$("#name").val();
var file=$("#file")[0].files[0];//新特性,獲取文件對象
var fordata=new FormData();//新特性,得到formData對象,把獲取的值扔進(jìn)去,相當(dāng)于map
fordata.append("name",name);
fordata.append("file",file);
console.log(file)
$.ajax({
url:"/war-2/UpdataFile",
data:fordata,
cache:false,
processData:false, //必須寫
contentType:false, //必須寫
type:"post",
success:function(data){
}
})
}
</script>
</html>
后臺java
package up;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
/**
* Servlet implementation class UpdataFile
*/
@MultipartConfig(location="E:/")
@WebServlet("/UpdataFile")
public class UpdataFile extends HttpServlet {
private static final long serialVersionUID = 1L;
private File file;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("1111111111");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//得到part對象,這個對象有write的方法,直接寫到指定位置。但是千萬別忘了寫@MultipartConfig(location="E:/")注解,不指定位置默認(rèn)是寫到注解指定的位置。
Part part = request.getPart("file");
//普通的字段可以采用常規(guī)的getparamter的方法得到。
System.out.println(new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8"));
System.out.println(part.getName());
System.out.println(part.getHeader("Content-Disposition"));
System.out.println(part.getSize());
String fileName = getFileNameFromPart(part);
part.write(fileName);
}
//截取文件名
public String getFileNameFromPart(Part part) {
String header = part.getHeader("Content-Disposition");
String fileName = header.substring(header.indexOf("filename=\"")+10, header.lastIndexOf("\""));
return fileName;
}
}
相信看了這些案例你已經(jīng)掌握了方法,更多精彩請關(guān)注php中文網(wǎng)其它相關(guān)文章!
相關(guān)閱讀:
html5中的DOM編程的實(shí)現(xiàn)步驟
用H5做有特效的下拉框
HTML里FormData對象的詳細(xì)介紹
以上就是h5里js和servlet實(shí)現(xiàn)文件上傳的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。