Grazie !
credo di aver risolto proprio con l' iframe.
Codice dell'iframe
codice:
<html>
<head>
<script language="JavaScript" type="text/javascript" src="../js/private/ajax.js"></script>
<script language="JavaScript" type="text/javascript" src="../js/private/jsclasses.js"></script>
</head>
<body>
<FORM METHOD="POST" id="caricaa" name="caricaa" ENCTYPE="multipart/form-data" ACTION="../UploadFile" >
<INPUT NAME="nascosto" TYPE="hidden" >
<label>Name:</label>
<INPUT NAME="documentationNameInput" TYPE="text">
<label>File:</label>
<INPUT NAME="documentationFileInput" TYPE="file" >
<INPUT TYPE="submit" VALUE="Send File" onclick="addDocumentation();">
</FORM>
</body>
</html>
Codice servlet
come si evince basta fare l'output con il codice dell'iframe, dalla servlet
codice:
import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.net.URLDecoder;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
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.FileItemFactory;
//import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Class for storing the uploaded files.
*
* @author JavaAtWork
*/
public class UploadFile extends HttpServlet {
/**
* The base upload directory. In this directory all uploaded files will
* be stored. With the applet param tag 'directory' you can create a
* subdirectory for a user.
* See http://www.javaatwork.com/parameters.html#directory for more
* information about the 'directory' param tag. For a Windows environment
* the BASE_DIRECTORY can be e.g. * 'c:/temp' for Linux environment '/tmp'.
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = this.getServletConfig().getServletContext();
String BASE_DIRECTORY=context.getRealPath("/upload");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// check if the http request is a multipart request
// with other words check that the http request can have uploaded files
if (isMultipart) {
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
// Set upload parameters
// See Apache Commons FileUpload for more information
// http://jakarta.apache.org/commons/fileupload/using.html
servletFileUpload.setSizeMax(-1);
try {
String directory = "";
String dirNascosta = "";
// Parse the request
List items = servletFileUpload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// the param tag directory is sent as a request parameter to
// the server
// check if the upload directory is available
if (item.isFormField()) {
String name = item.getFieldName();
//leggo il file nascosto per l'invio del nome con data modificato da javascript
if (name.equalsIgnoreCase("nascosto")) {
dirNascosta = item.getString();
}
if (name.equalsIgnoreCase("documentationFileInput")) {
directory = item.getString();
}
// retrieve the files
} else {
// the fileNames are urlencoded
String fileName = URLDecoder.decode(item.getName(), "UTF-8");
fileName=dirNascosta;
//System.out.println("fileNameNEW------>"+fileName);
//System.out.println("nascosto2q------>"+dirNascosta);
//System.out.println("directory------>"+directory);
File file = new File(directory, fileName);
file = new File(BASE_DIRECTORY, file.getPath());
//System.out.println("file------>"+file);
// retrieve the parent file for creating the directories
File parentFile = file.getParentFile();
if (parentFile != null) {
parentFile.mkdirs();
}
// writes the file to the filesystem
item.write(file);
System.out.println("Server path:" +file.getPath());
}
}
} catch (Exception e) {
e.printStackTrace();
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
response.setStatus(HttpServletResponse.SC_OK);
Writer writer=response.getWriter();
//metto il codice HTML per far rigenerare la stessa pagina
String text="<FORM METHOD=\"POST\" id=\"caricaa\" name=\"caricaa\" ENCTYPE=\"multipart/form-data\" ACTION=\"UploadFile\" ><INPUT NAME=\"nascosto\" TYPE=\"hidden\" ><label>Name:</label><INPUT NAME=\"documentationNameInput\" TYPE=\"text\">
<label>File:</label> <INPUT NAME=\"documentationFileInput\" TYPE=\"file\" >
<INPUT TYPE=\"submit\" VALUE=\"Send File\" onclick=\"addDocumentation();\"></FORM></body></html>";
writer.write("<html><head><script language=\"JavaScript\" type=\"text/javascript\" src=\"js/private/ajax.js\"></script><script language=\"JavaScript\" type=\"text/javascript\" src=\"js/private/jsclasses.js\"></script></head><body><div>File uploaded</div>"+text);
writer.close();
} else {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
}
}
}