資源簡介
本示例通過java自動生成證書,并根據證書對pdf文件進行電子簽名,本程序為b/s結構,在服務器端對上傳的文件進行電子簽名

代碼片段和文件信息
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“);
?????????//設置生成證書路徑
?????????String?pfxPath?=?this.getServletContext().getRealPath(“/WEB-INF/pfx“);
??????????File?file?=?new?File(savePath);
?????????????????//判斷上傳文件的保存目錄是否存在
?????????????????if?(!file.exists()?&&?!file.isDirectory())?{
?????????????????????System.out.println(savePath+“目錄不存在,需要創建“);
????????????????????//創建目錄
?????????????????????file.mkdir();
?????????????????}
?????????????????file=new?File(pfxPath);
?????????????????//判斷上傳文件的保存目錄是否存在
?????????????????if?(!file.exists()?&&?!file.isDirectory())?{
?????????????????????System.out.println(savePath+“目錄不存在,需要創建“);
????????????????????//創建目錄
?????????????????????file.mkdir();
?????????????????}
?????????????????//消息提示
?????????????????String?message?=?““;
?????????????????try{???????
????????????? //使用解析器解析
???????????????? ?//使用Apache文件上傳組件處理文件上傳步驟:
?????????????????????//1、創建一個DiskFileItemFactory工廠
?????????????????????DiskFileItemFactory?factory?=?new?DiskFileItemFactory();
????????????????????//2、創建一個文件上傳解析器
?????????????????????ServletFileUpload?upload?=?new?ServletFileUpload(factory);
?????????????????????//解決上傳文件名的中文亂碼
????????????????????//?upload.setHeaderEncoding(“UTF-8“);?
?????????????????????//3、判斷提交上來的數據是否是上傳表單的數據
//????????????????????if(!ServletFileUpload.isMultipartContent(request)){
//?????????????????????????//按照傳統方式獲取數據
//?????????????????????????return;
//?????????????????????}
????????????????????//4、使用ServletFileUpload解析器解析上傳數據,解析結果返回的是一個List集合,每一個FileItem對應一個Form表單的輸入項
?????????????????????List?list?=?upload.parseRequest(request);
?????????????????????for(FileItem?item?:?list){
????????????????????????//如果fileitem中封裝的是普通輸入項的數據
?????????????????????????if(item.isFormField()){
?????????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????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個文件信息
- 上一篇:socket多線程文件上傳 完整
- 下一篇:基于java的餐飲系統畢業設計哦
評論
共有 條評論