您好,登錄后才能下訂單哦!
1.瀏覽器端:選擇圖片、提交表單,同時將圖片發(fā)送給服務(wù)器
<form action=”” method=”post” enctype=”multipart/form-data”>
<input type=”file” name=”image”>
<input type=”submit”>
上傳的內(nèi)容,都在請求體中。
2.服務(wù)器端:
1)手動獲得請求體,需要手動解析。request.getInputStream()
2)使用servlet3.0
3)第三方工具 – apache-commons-fileupload
4)struts2
@WebServlet("/FileUploadServlet")
@MultipartConfig //表示支持文件上傳,否則獲得null
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1 普通字段
String username = request.getParameter("username");
System.out.println(username);
//2 上傳字段
Part part = request.getPart("image");
//2.1 獲得文件名
// * IE --> C:\Users\liangtong\Desktop\heima.txt
// * 其他瀏覽器 --> heima.txt
String contentDisposition = part.getHeader("Content-Disposition");
System.out.println(contentDisposition);
// * 截取文件名
int start = contentDisposition.indexOf("filename=") + 10;
int end = contentDisposition.length() - 1;
String fileName = contentDisposition.substring(start, end);
// * 瀏覽器兼容 -- lastIndexOf() 如果沒有獲得返回 -1
fileName = fileName.substring( fileName.lastIndexOf("\\") + 1);
System.out.println(fileName);
//2.2 獲得上傳文件內(nèi)容
InputStream is = part.getInputStream();
//2.3 將流寫入到服務(wù)器文件中
// * 上傳目錄
String dir = this.getServletContext().getRealPath("/WEB-INF/upload");
File file = new File(dir , fileName);
// * 流的對拷
FileOutputStream out = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len = -1;
while( (len = is.read(buf)) != -1 ){
out.write(buf, 0, len);
}
out.close();
is.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。