Allora, vi pongo questo mio quesito:
Io ho il link ad un documento pdf, ed adesso vorrei scaricarlo, inserendolo all'interno di una determinata directory (tipo: C:\\ temporaneo). che andrò a cancellare al termine dell'esecuzione del programma. Quello che segue è il mio codice per scaricare il pdf, ma non ho idee su come poterlo obbligare a scaricare in una determinata directory. So che esiste mkdir() o mkdirs() ma queste vengono appplicate ad un file
codice:
/**
* Effettua il download del documento eseguendo una chiamata di tipo Retrieve Document Set al XDS Repository
* @param documentUniqueId il documentUniqueId
* @param repositoryUniqueId il repositoryUniqueId
* @param httpResponse la response http
* @throws Exception
*/
@RequestMapping(value = DOWNLOAD_URL, method = RequestMethod.GET)
public void download(@RequestParam(PARAM_DOCUMENT_UNIQUE_ID) String documentUniqueId,
@RequestParam(PARAM_REPOSITORY_UNIQUE_ID) String repositoryUniqueId, HttpServletResponse httpResponse) throws Exception {
this.log.trace("chiamato download()");
RetrieveDocumentSetRequestType rdsRequest = new RetrieveDocumentSetRequestType();
DocumentRequest docReq = new DocumentRequest();
docReq.setRepositoryUniqueId(repositoryUniqueId);
docReq.setDocumentUniqueId(documentUniqueId);
rdsRequest.getDocumentRequest().add(docReq);
RetrieveDocumentSetResponseType rdsResponse = this.repositoryWS.documentRepositoryRetrieveDocumentSet(rdsRequest);
if((MetadataSupport.response_status_type_namespace + "Success").equals(rdsResponse.getRegistryResponse().getStatus()))
{
DocumentResponse docRes = rdsResponse.getDocumentResponse().get(0);
String extension=".pdf";
/*if(docRes.getMimeType().trim().equals("application/pdf"))
extension = ".pdf";
else
extension = ".rtf"; // in questo caso lo apriamo .rtf, ma vanno bene anche gli altri formati eg. txt */
httpResponse.setContentLength(docRes.getDocument().length);
httpResponse.setContentType("application/pdf");
httpResponse.setHeader("Content-Disposition", "attachment; filename=" + docRes.getDocumentUniqueId() + extension);
ServletOutputStream servletOS = httpResponse.getOutputStream();
servletOS.write(docRes.getDocument(), 0, docRes.getDocument().length);
servletOS.flush();
servletOS.close();
}//if
else
{
this.log.error("Il repository non è riuscito a restituire il documento con identificativo: " + documentUniqueId);
RegistryErrorList rel = rdsResponse.getRegistryResponse().getRegistryErrorList();
if(rel != null)
{
for(RegistryError error: rel.getRegistryError())
{
this.log.error(error.getValue());
}//for
}//if
}//else
}// download()
Qualsiasi idea è ben accetta!