日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

smartupload工具上传文件

發布時間:2024/3/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 smartupload工具上传文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.將jar包添加到項目中

2.準備上傳的頁面

3.后臺代碼:

Servlet中獲取JSP頁面中的內置對象PageContext

smartupload常用方法

文件下載


1.將jar包添加到項目中

? smartupload.jar ? javaee-api-7.0.jar

2.準備上傳的頁面

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html><head><title>$Title$</title></head><body><h1>上傳圖片和文本</h1><form action="uploadtest" method="post" enctype="multipart/form-data">姓名:<input type="text" name="uname"><br>圖片:<input type="file" name="pic"><br><input type="submit" value="上傳到服務器"></form></body> </html>

:(1)form標簽中要添加enctype屬性

(2)提交方式必須是post

3.后臺代碼:

package servlet;import com.jspsmart.upload.File; import com.jspsmart.upload.SmartUpload; import com.jspsmart.upload.SmartUploadException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspFactory; import javax.servlet.jsp.PageContext; import java.io.IOException;@WebServlet(urlPatterns = "/uploadtest") public class UploadServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {try {//1.創建上傳文件的對象SmartUpload smartUpload = new SmartUpload();//2.初始化上傳操作//在servlet中獲取jsp的內置對象pageContext//通過工具類JspFactory.getDefaultFactory()的getPageContext()//getPageContext()中有7個參數//參1:當前servlet對象;參2:req;參3:resp;參4:字符串,傳入jsp的錯誤頁面;參5:是否使用session;參6:緩沖區大小;參7:緩沖區滿了溢出部分是否加入到輸出流中PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, req, resp, null, false, 1024, true);smartUpload.initialize(pageContext);//2.1 設置編碼smartUpload.setCharset("utf-8");//3.文件上傳到服務器smartUpload.upload();//4.獲取文件信息File file = smartUpload.getFiles().getFile(0);//獲取指定下標的上傳文件String fileName = file.getFileName();//獲取上傳的文件名String contentType = file.getContentType();//獲取上傳文件的類型//獲取文本信息String uname = smartUpload.getRequest().getParameter("uname");System.out.println("uname="+uname);//5.指定上傳的路徑(設置上傳的文件在服務器中保存的位置)//首先在web下創建uploadfiles文件夾,并且創建文件a.txt,因為空文件夾無法部署到服務器String uploadpath="/uploadfiles/"+fileName;//6.保存到指定位置,File.SAVEAS_VIRTUAL表示保存到虛擬路徑中file.saveAs(uploadpath,File.SAVEAS_VIRTUAL);//7.跳轉成功頁面,在頁面中顯示圖片req.setAttribute("filename",fileName);req.getRequestDispatcher("success.jsp").forward(req,resp);} catch (SmartUploadException e) {e.printStackTrace();}} }

?

(1)此時如果表單中有其他數據時,不能通過request直接獲取,需要通過SmartUpload對象獲取 smartUpload.getRequest().getParameter("uname") 并且該代碼要在SmartUpload操作完成后添加 (2)解決亂碼: new String(name.getBytes("GBK"),"utf-8")

Servlet中獲取JSP頁面中的內置對象PageContext

JspFactory.getDefaultFactory().getPageContext(.........)

smartupload常用方法

文件下載

package servlet;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder;@WebServlet(urlPatterns = "/downimg") public class DownServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String filename = req.getParameter("filename");//獲取要下載的文件名String path="/uploadfiles/"+filename;//文件路徑//設置響應的數據類型--將響應的內容設置為通用的二進制流resp.setContentType("application/octet-stream");//響應的頭信息,設置文件名編碼格式,避免頁面中下載的文件名亂碼//attachment 告訴瀏覽器以附件的方式下載文件(彈出下載框)resp.addHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(filename,"UTF-8"));//跳轉頁面req.getRequestDispatcher(path).forward(req,resp);//清空緩沖區:將服務端緩沖區的文件內容,立即全部傳送給客戶端resp.flushBuffer();} }

?

本地圖片上傳到服務器后,并在頁面顯示圖片

?

?

?

總結

以上是生活随笔為你收集整理的smartupload工具上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。