Para hacer un upload con struts simplemente el archivo Upload.java tendria que modificarse como lo siguiente:
//File directorio=new File("c:\\archivosPDFsubidos"); //directorio.mkdir(); //String path=directorio+fileName+theForm.getTheText(); String path="c:\\"+fileName+theForm.getTheText(); try { //retrieve the file data ByteArrayOutputStream baos = new ByteArrayOutputStream(); InputStream stream = file.getInputStream(); if (!writeFile) { //only write files out that are less than 1MB if (file.getFileSize() < (4*1024000)) {
byte[] buffer = new byte[8192]; int bytesRead = 0; while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) { baos.write(buffer, 0, bytesRead); } data = new String(baos.toByteArray()); } else { data = new String("The file is greater than 4MB, " + " and has not been written to stream." + " File Size: " + file.getFileSize() + " bytes. This is a" + " limitation of this particular web application, hard-coded" + " in org.apache.struts.webapp.upload.UploadAction"); } } else { // Aquí está mi aporte File f = new File(path); FileOutputStream out = new FileOutputStream(f); out.write(file.getFileData()); out.flush(); out.close();
//write the file to the file specified OutputStream bos = new FileOutputStream(theForm.getFilePath()); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) { bos.write(buffer, 0, bytesRead); } bos.close(); data = "The file has been written to \"" + theForm.getFilePath() + "\""; } //close the stream stream.close(); } catch (FileNotFoundException fnfe) { return null; } catch (IOException ioe) { return null; }
...probad el código y vereis que hace una carga en la unidad C: (bueno, he sido educado en idioma español)
de nada, a mi tampoco me salía, simplemente dije: si me sale lo coloco en mi blog.
Puedes mejorar reeemplzando los tag html de struts con simple HTML