Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Commons Upload

  1. #1

    Commons Upload

    Stò cercando di inserire un file in un server usando la libreria di Apache ma non riesco a capire cosa non funzioni.
    Ho creato il file html e la servlet, ma non funziona niente,,, Qualcuno mi può aiutare????

  2. #2
    Posta un po di codice, la servlet sarebbe meglio.

  3. #3
    codice:
    package upload;
    
    import java.io.IOException;
    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.FileItemFactory;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    public class UploadServlet extends HttpServlet {
    	
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
    		
    		//Create a factor for disk-based file items
    		FileItemFactory factory = new DiskFileItemFactory(); 
    		
    		//Create a new file upload handler
    		ServletFileUpload upload = new ServletFileUpload(factory);
    		PrintWriter out = null;
    		out = response.getWriter();
    		response.setContentType("text/html");
    		try {
    			//Parse request
    			List<FileItem> items = upload.parseRequest(request);
    			//Process the upload items
    			for(FileItem item :items){
    				if(item.isFormField()){  
    					//Se il valore di ritorno e true allora il campo è testuale
    					String name = item.getFieldName(); //Nome del campo
    					String value = item.getString();	//Valore associato
    					this.visualizza1(out, name, value);
    				}else{
    					//Se inFormField è false allora abbiamo un file inserito nel server
    					String name = item.getFieldName(); //Nome del campo input
    					long size = item.getSize();		//Dimensione del file
    					String fileName = item.getName();	//Il suo nome originale sul computer dell'utente
    					String type = item.getContentType(); ////Tipologia MIME dei dati passati
    					byte[] data = item.get();	//Il contenuto vero e proprio del file in questione
    					this.visualizza2(out, name,size,fileName,type);
    				}
    			}
    		} catch (FileUploadException e) {
    			e.printStackTrace();
    		}
    			}
    
    	private void visualizza1(PrintWriter out, String name, String value) {
    		out.println("\n" +
    				"<html>" +
    					"<head>" +
    						"<title>InserisciOrdineServlet</title>" +
    					"</head>" +
    					"<body>" +
    						"
    
    L'ordine e' stato inserito con successo</p>" +
    						"
    
    I dati inseriti sono</p>" +
    						"
    
    Nome: " + name + "</p>" +
    						"
    
    Value: " + value + "</p>" +
    					"</body>" +
    				"</html>");
    		
    	}
    
    	private void visualizza2(PrintWriter out, String name, long size,
    			String fileName, String type) {
    		out.println("\n" +
    				"<html>" +
    					"<head>" +
    						"<title>InserisciOrdineServlet</title>" +
    					"</head>" +
    					"<body>" +
    						"
    
    L'ordine e' stato inserito con successo</p>" +
    						"
    
    I dati inseriti sono</p>" +
    						"
    
    Nome: " + name + "</p>" +
    						"
    
    Size: " + size + "</p>" +
    						"
    
    FileName: " + fileName + "</p>" +
    						"
    
    Type: " + type + "</p>" +
    					"</body>" +
    				"</html>");
    	}
    		
    	
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		this.doGet(request, response);
    	}
    
    }
    p.s= ho inserito l'html di risposta nella servlet solo perchè è un esempio di solito uso le jsp

  4. #4
    1) Scusa è ma dove è che salvi il file??

    Dovresti usare il comando

    fileItem.write(new File(storeFileName));

    2)I nomi dei file da salvare ti arrivano giusti sulla request, ovvero fileItems contiene i file che dovresti salvare??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.