Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    23
    allora ho creato sul server la servlet che gestisce la lettura dei byte dell'immagine.. ma in fase di debug sembrerebbe che non raggiunge la servlet, credo che imposto male il la FormAction(), ci metto l'indirizzo in localhost dove si trova il file della servlet. dove sbaglio?
    Ultima modifica di sella89; 05-10-2014 a 11:25

  2. #12
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    23
    Quote Originariamente inviata da sella89 Visualizza il messaggio
    allora ho creato sul server la servlet che gestisce la lettura dei byte dell'immagine.. ma in fase di debug sembrerebbe che non raggiunge la servlet, credo che imposto male il la FormAction(), ci metto l'indirizzo in localhost dove si trova il file della servlet. dove sbaglio?
    allora vi scrivo come ho impostato il procedimento, che ho cambiato un pò di cose e spero vivamente in un vostro aiuto.
    ho un package client e uno server,
    sul package client ho scritto questo:

    codice:
           HorizontalPanel hoImg = new HorizontalPanel();                //InputStream ips= new InputStream("");
                    
                    VpAnn2.add(new Label("inserisci foto:"));
                    VpAnn2.add(hoImg);
                    hoImg.add(fupl);
                    hoImg.add(fPan);                                
                    VpAnn2.add(insert);
                    //fPan.setAction("/Prova/fileUpl/");
                    fPan.setAction("/Prova/src/com/prova/server/fileupl");
                    fPan.setEncoding(FormPanel.ENCODING_MULTIPART);
                    fPan.setMethod(FormPanel.METHOD_POST);
                    //fPan.setWidget(dBox4);
                    
                    //Connessione al DB con metodo inserimentoRadio
                    insert.addClickHandler(new ClickHandler()
                    {    
                        
                        public void onClick(ClickEvent Event)
                        {
                            
                            final String getMarca= marca.getText();
                            final String getModello= modello.getText();
                            final String getAnno= anno.getText();
                            final String getPrezzo=prezzo.getText();
                            final String getDim=dim.getText();
                            final String foto=fupl.getFilename();
                            String img=null;
                            if(foto.length()==0){
                                Window.alert("no File Specified");
                            }                
                            else{
                                fPan.submit();
                            }
                            fPan.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
                                
                                
                                @Override
                                public void onSubmitComplete(SubmitCompleteEvent event) {
                                    // TODO Auto-generated method stub
                                    if(event.getResults()==null){
                                        Window.alert("foto non inserita");
                                    }
                                    else{
                                        Window.alert(event.getResults());
                                    }
                                }
                            });
    dove fPan è un:
    codice:
     Form fPan=new Form();
    fupl è un:
    codice:
    FileUpload fupl=new FileUpload();
    poi nel package server ho creato la servlet a cui fa riferimento la fPan.setAction(), e è impostata in questo modo:
    codice:
    public void DoPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{
            FileItemFactory factory= new DiskFileItemFactory();
            //create a new file upload Handler
            ServletFileUpload upload= new ServletFileUpload(factory);
            try{
                //parse the Request
                List items=upload.parseRequest(request);
                Iterator iter=items.iterator();
                while(iter.hasNext()){
                    FileItem fileItem=(FileItem) iter.next();
                    //cattura un normale form-field
                    if(fileItem.isFormField())
                    {
                        System.out.println("Got a form Field");
                        String fieldName=fileItem.getFieldName();
                        String fileName=fileItem.getString();
                        System.out.println("Name:"+fileName+", Value:"+fieldName);
                    }else{//cattura il file da uplodare
                        System.out.println("Not Form Field");
                        String fieldName=fileItem.getFieldName();
                        String fileName=fileItem.getName();
                        if(fileName!=null){
                            fileName=FilenameUtils.getName(fileName);
                        }
                        String contentType=fileItem.getContentType();
                        boolean isInMem=fileItem.isInMemory();
                        long sizeinByte=fileItem.getSize();
                        System.out.println("Field Name:"+fieldName+" ,File Name:"+fileName);
                        System.out.println("Content Type: "+contentType+", isInMEmory:"+isInMem+", Size: "+sizeinByte);
                        byte[] data=fileItem.get();
                        fileName=getServletContext().getRealPath(fileName);
                        System.out.println("File Name: "+ fileName);
                        FileOutputStream fileOutput= new FileOutputStream(fileName);
                        fileOutput.write(data);
                        
                        fileOutput.close();
                        System.out.println("File upload Successfully");
                                            
                    }
                }
            }
            catch(Exception e){
                e.printStackTrace();
            }
    ed infine ho impostato questa servlet anche nel web.xml dove gestisco il name e l'url nel <servlet> E <servlet-mapping>.

    Ora in fase di debug non riesco a raggiungere il file scritto nel nel package del Server.
    come posso procedere?
    altra domanda io mi aspetto una response dalla servlet per poi lato client inviare una richiesta alla mia prima servlet GreetingSeriviceImpl che si interfaccia con i database, ma mi converrebbe impostare tutta la connessione al db con la seconda servlet(usata solo per il caricamento del file immagine?)in questo ultimo caso come gestisco il form e i vari attributi della tabella?
    Spero in una vostra risposta che non so piu che pesci prendere.
    vi Ringrazio anticipatamente.

  3. #13
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    23
    codice:
    public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{
            FileItemFactory factory= new DiskFileItemFactory();
            //create a new file upload Handler
            ServletFileUpload upload= new ServletFileUpload(factory);
            try{
                //parse the Request
                List items=upload.parseRequest(request);
                Iterator iter=items.iterator();
                while(iter.hasNext()){
                    FileItem fileItem=(FileItem) iter.next();
                    //cattura un normale form-field
                    if(fileItem.isFormField())
                    {
                        System.out.println("Got a form Field");
                        String fieldName=fileItem.getFieldName();
                        String fileName=fileItem.getString();
                        System.out.println("Name:"+fileName+", Value:"+fieldName);
                    }else{//cattura il file da uplodare
                        System.out.println("Not Form Field");
                        String fieldName=fileItem.getFieldName();
                        String fileName=fileItem.getName();
                        if(fileName!=null){
                            fileName=FilenameUtils.getName(fileName);
                        }
                        String contentType=fileItem.getContentType();
                        boolean isInMem=fileItem.isInMemory();
                        long sizeinByte=fileItem.getSize();
                        System.out.println("Field Name:"+fieldName+" ,File Name:"+fileName);
                        System.out.println("Content Type: "+contentType+", isInMEmory:"+isInMem+", Size: "+sizeinByte);
                        byte[] data=fileItem.get();
                        fileName=getServletContext().getRealPath(fileName);
                        System.out.println("File Name: "+ fileName);
                        FileOutputStream fileOutput= new FileOutputStream(fileName);
                        fileOutput.write(data);
                        
                        fileOutput.close();
                        System.out.println("File upload Successfully");
                                            
                    }
                }
            }
            catch(Exception e){
                e.printStackTrace();
            }


    allora in fase di DEBUG riesco ad entrare nella servlet, però sto notando che è come se la response e la request fossero null, infatti ,quando instanzio l'iteratore, subito dopo faccio un ciclo while dove mi esce subito e va nel catch!.
    non so più come fare, ho esaurito tutte le idee
    Ultima modifica di sella89; 09-10-2014 a 15:15

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.