-
大小: 4.23MB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2023-10-03
- 語(yǔ)言: Java
- 標(biāo)簽:
資源簡(jiǎn)介
本示例通過java自動(dòng)生成pfx證書,根據(jù)生成的證書,自動(dòng)實(shí)現(xiàn)對(duì)pdf文件的電子簽名
代碼片段和文件信息
package?com.yonyou.com;
import?java.io.File;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.PrintWriter;
import?java.util.List;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?org.apache.commons.fileupload.FileItem;
import?org.apache.commons.fileupload.disk.DiskFileItemFactory;
import?org.apache.commons.fileupload.servlet.ServletFileUpload;
import?com.yonyou.com.util.PKCS;
import?com.yonyou.com.util.signPDF;
public?class?UpLoadFilePdf?extends?HttpServlet?{
@Override
protected?void?service(HttpServletRequest?request?HttpServletResponse?response)
throws?ServletException?IOException?{
request.setCharacterEncoding(“utf-8“);
response.setContentType(“text/html;utf-8“);
response.setCharacterEncoding(“utf-8“);
???PrintWriter?outPut=response.getWriter();
????????//得到上傳文件的保存目錄,將上傳的文件存放于WEB-INF目錄下,不允許外界直接訪問,保證上傳文件的安全
?????????String?savePath?=?this.getServletContext().getRealPath(“/WEB-INF/upload“);
???????//??String?savePath1=this.getServletContext().getRealPath(“/WEB-INF/upload“);
?????????//設(shè)置生成證書路徑
?????????String?pfxPath?=?this.getServletContext().getRealPath(“/WEB-INF/pfx“);
??????????File?file?=?new?File(savePath);
?????????????????//判斷上傳文件的保存目錄是否存在
?????????????????if?(!file.exists()?&&?!file.isDirectory())?{
?????????????????????System.out.println(savePath+“目錄不存在,需要?jiǎng)?chuàng)建“);
????????????????????//創(chuàng)建目錄
?????????????????????file.mkdir();
?????????????????}
?????????????????file=new?File(pfxPath);
?????????????????//判斷上傳文件的保存目錄是否存在
?????????????????if?(!file.exists()?&&?!file.isDirectory())?{
?????????????????????System.out.println(savePath+“目錄不存在,需要?jiǎng)?chuàng)建“);
????????????????????//創(chuàng)建目錄
?????????????????????file.mkdir();
?????????????????}
?????????????????//消息提示
?????????????????String?message?=?““;
?????????????????try{???????
????????????? //使用解析器解析
???????????????? ?//使用Apache文件上傳組件處理文件上傳步驟:
?????????????????????//1、創(chuàng)建一個(gè)DiskFileItemFactory工廠
?????????????????????DiskFileItemFactory?factory?=?new?DiskFileItemFactory();
????????????????????//2、創(chuàng)建一個(gè)文件上傳解析器
?????????????????????ServletFileUpload?upload?=?new?ServletFileUpload(factory);
?????????????????????//解決上傳文件名的中文亂碼
????????????????????//?upload.setHeaderEncoding(“UTF-8“);?
?????????????????????//3、判斷提交上來(lái)的數(shù)據(jù)是否是上傳表單的數(shù)據(jù)
//????????????????????if(!ServletFileUpload.isMultipartContent(request)){
//?????????????????????????//按照傳統(tǒng)方式獲取數(shù)據(jù)
//?????????????????????????return;
//?????????????????????}
????????????????????//4、使用ServletFileUpload解析器解析上傳數(shù)據(jù),解析結(jié)果返回的是一個(gè)List集合,每一個(gè)FileItem對(duì)應(yīng)一個(gè)Form表單的輸入項(xiàng)
?????????????????????List?list?=?upload.parseRequest(request);
?????????????????????for(FileItem?item?:?list){
????????????????????????//如果fileitem中封裝的是普通輸入項(xiàng)的數(shù)據(jù)
?????????????????????????if(item.isFormField()){
?????????????????????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????841??2016-04-25?10:53??signautre\.classpath
?????文件???????1042??2016-04-19?14:18??signautre\.project
?????文件????????503??2016-04-19?14:18??signautre\.settings\.jsdtscope
?????文件????????205??2016-04-19?16:44??signautre\.settings\org.eclipse.core.resources.prefs
?????文件????????364??2016-04-19?14:18??signautre\.settings\org.eclipse.jdt.core.prefs
?????文件????????479??2016-04-19?14:18??signautre\.settings\org.eclipse.wst.common.component
?????文件????????345??2016-04-19?14:18??signautre\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2016-04-19?14:18??signautre\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2016-04-19?14:18??signautre\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????5022??2016-05-06?10:39??signautre\build\classes\com\yonyou\com\UpLoadFilePdf.class
?????文件???????5001??2016-05-06?10:39??signautre\build\classes\com\yonyou\com\util\KeyStoreFactory.class
?????文件???????3496??2016-05-06?10:39??signautre\build\classes\com\yonyou\com\util\PKCS.class
?????文件???????2649??2016-05-06?10:39??signautre\build\classes\com\yonyou\com\util\SignatureException.class
?????文件???????6155??2016-05-06?10:39??signautre\build\classes\com\yonyou\com\util\signPDF.class
?????文件???????6725??2016-04-20?12:20??signautre\src\com\yonyou\com\UpLoadFilePdf.java
?????文件???????4596??2016-05-03?17:40??signautre\src\com\yonyou\com\util\KeyStoreFactory.java
?????文件???????2513??2016-04-20?12:27??signautre\src\com\yonyou\com\util\PKCS.java
?????文件???????2707??2016-04-19?15:51??signautre\src\com\yonyou\com\util\SignatureException.java
?????文件???????5316??2016-04-25?10:54??signautre\src\com\yonyou\com\util\signPDF.java
?????文件???????1441??2016-04-20?11:53??signautre\WebContent\fileuploadtest.jsp
?????文件?????267604??2016-03-22?14:00??signautre\WebContent\js\jquery-1.8.0.js
?????文件??????43892??2016-03-22?14:00??signautre\WebContent\js\jquery.form.js
?????文件?????????39??2016-04-19?14:18??signautre\WebContent\me
?????文件?????146978??2016-04-20?15:30??signautre\WebContent\WEB-INF\img\12.png
?????文件???????6160??2016-04-20?15:55??signautre\WebContent\WEB-INF\img\13.png
?????文件???????2570??2016-04-20?16:34??signautre\WebContent\WEB-INF\img\sign.png
?????文件?????487135??2012-11-07?08:51??signautre\WebContent\WEB-INF\lib\bcmail-jdk15-1.46.jar
?????文件????1815677??2012-11-07?08:52??signautre\WebContent\WEB-INF\lib\bcprov-jdk15-1.46.jar
?????文件??????68622??2016-04-19?15:08??signautre\WebContent\WEB-INF\lib\commons-fileupload-1.3.jar
?????文件?????185140??2016-04-20?09:43??signautre\WebContent\WEB-INF\lib\commons-io-2.4.jar
............此處省略25個(gè)文件信息
評(píng)論
共有 條評(píng)論