diff options
Diffstat (limited to 'pdf-as-web/src')
4 files changed, 38 insertions, 5 deletions
| diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java index 77c31c9a..12d7ffc5 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java @@ -64,6 +64,7 @@ public class PdfAsHelper {  	private static final String PDF_PDFDATA_PAGE = "/PDFData";  	private static final String PDF_DATAURL_PAGE = "/DataURL";  	private static final String PDF_ERR_URL = "PDF_ERR_URL"; +	private static final String PDF_FILE_NAME = "PDF_FILE_NAME";  	private static final String PDF_INVOKE_URL = "PDF_INVOKE_URL";  	private static final String REQUEST_FROM_DU = "REQ_DATA_URL";  	private static final String SIGNATURE_DATA_HASH = "SIGNATURE_DATA_HASH"; @@ -627,17 +628,33 @@ public class PdfAsHelper {  	}  	public static void setSignatureDataHash(HttpServletRequest request, String value) { -		request.setAttribute(SIGNATURE_DATA_HASH, value); +		HttpSession session = request.getSession(); +		session.setAttribute(SIGNATURE_DATA_HASH, value);  	}  	public static String getSignatureDataHash(HttpServletRequest request) { -		Object obj = request.getAttribute(SIGNATURE_DATA_HASH); +		HttpSession session = request.getSession(); +		Object obj = session.getAttribute(SIGNATURE_DATA_HASH);  		if (obj != null) {  			return obj.toString();  		}  		return "";  	} +	public static void setPDFFileName(HttpServletRequest request, String value) { +		HttpSession session = request.getSession(); +		session.setAttribute(PDF_FILE_NAME, value); +	} + +	public static String getPDFFileName(HttpServletRequest request) { +		HttpSession session = request.getSession(); +		Object obj = session.getAttribute(PDF_FILE_NAME); +		if (obj != null) { +			return obj.toString(); +		} +		return "document.pdf"; +	} +	  	public static void setSignatureActive(HttpServletRequest request, boolean value) {  		request.setAttribute(SIGNATURE_ACTIVE, new Boolean(value));  	} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java index 3a6bc971..dddd80dd 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java @@ -151,7 +151,22 @@ public class ExternSignServlet extends HttpServlet {  							FileItem item = (FileItem) obj;  							if(item.getFieldName().equals(UPLOAD_PDF_DATA)) {  								filecontent = item.get(); -								 +								try { +									File f = new File(item.getName()); +									String name = f.getName(); +									logger.debug("Got upload: " + item.getName()); +									if(name != null) { +										if(!(name.endsWith(".pdf") || name.endsWith(".PDF"))) { +											name += ".pdf"; +										} +										 +										logger.debug("Setting Filename in session: " + name); +										PdfAsHelper.setPDFFileName(request, name); +									} +								} +								catch(Throwable e) { +									logger.error("In resolving filename", e); +								}  								if(filecontent.length < 10) {  									filecontent = null;  								} else { @@ -162,7 +177,7 @@ public class ExternSignServlet extends HttpServlet {  								logger.debug("Setting " + item.getFieldName() + " = " + item.getString());  							}  						} else { -							logger.info(obj.getClass().getName() +  " - " + obj.toString()); +							logger.debug(obj.getClass().getName() +  " - " + obj.toString());  						}  					}  				} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java index 9bf66fe9..0800c05c 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java @@ -70,6 +70,7 @@ public class PDFData extends HttpServlet {  					return;  				}  			} +			response.setHeader("Content-Disposition", "inline;filename=" + PdfAsHelper.getPDFFileName(request));  			response.setContentType("application/pdf");  			OutputStream os = response.getOutputStream();  			os.write(signedData); diff --git a/pdf-as-web/src/main/resources/template_provide.html b/pdf-as-web/src/main/resources/template_provide.html index d0bb41ac..5ba884a8 100644 --- a/pdf-as-web/src/main/resources/template_provide.html +++ b/pdf-as-web/src/main/resources/template_provide.html @@ -4,6 +4,6 @@  <title>Provide PDF</title>  </head>  <body> -PDF ready @: <a href="##PDFDATAURL##">here</a> +PDF ready @: <a href="##PDFDATAURL##" download>here</a>  </body>  </html> | 
