Problem z przesłaniem nazwy pliku z klasy do klasy

0

Witam na wstępie dodam ze jestem zielony z javy..
A problem wygląda nastepująco mam dwie klasy Upload odpowiedzialna za upload pliku na serwer
i klasa Filtruj. Ogolnie po uploadzie na serwer chce poddac plik filtracji ale żeby to zrobić muszę mieć nazwę pliku który został wysłany na serwer. Pytanie w jak sposób przesłać tego string do klasy filtruj?

Robie cos takiego w klasie upload
fileName = file.getName();
filtruj fil=new filtruj();
fil.setNazwa(fileName);
w klasie Filtruj
public void setNazwa(String nazwa) {
this.nazwa = nazwa;
}

Duzo tego nie ma dlatego wrzucam caly kod (do tego nie wiem co robie nie tak....)
Klasa upload

<code = java>
public class uploadclass {

private UploadedFile uploadedFile;
private String fileName;

public String submit() {
	 
    String prefix = FilenameUtils.getBaseName(uploadedFile.getName());
    String suffix = FilenameUtils.getExtension(uploadedFile.getName());
    
    
    File file = null;
    OutputStream output = null;
    
    try {
        file = File.createTempFile(prefix , "." + suffix, new File("c:/upload"));
    	
        output = new FileOutputStream(file);
        IOUtils.copy(uploadedFile.getInputStream(), output);
        ///////////////////
        fileName = file.getName();
        filtruj fil=new filtruj();
       fil.setNazwa(fileName);
        ///////////////////
        System.out.println(fileName);
        
    } catch (IOException e) {
       if (file != null) file.delete();
       FacesContext.getCurrentInstance().addMessage("uploadForm", new FacesMessage(
       FacesMessage.SEVERITY_ERROR, "File upload failed with I/O error.", null));
       e.printStackTrace();
    }
    finally {
        IOUtils.closeQuietly(output);
     }
    return "success";
}

public UploadedFile getUploadedFile() {
return uploadedFile;
}

public  String getFileName() {
	return fileName;
}

public void setUploadedFile(UploadedFile uploadedFile) {
    this.uploadedFile = uploadedFile;
}

}



Klasa Filtruj

<code = java>
public class filtruj {
	private String nazwa;
	public String pliknazwa;
	
	public void aaa(){
		
		pliknazwa=getNazwa();
		System.out.println(pliknazwa);
	}
	
	public void setNazwa(String nazwa) {
	      this.nazwa = nazwa;
	 }
	
	 public String getNazwa() {
	      return nazwa;
	 }
	
}
 

oczywiscie po System.out.println(pliknazwa); na konsoli otrzymuje null

0

użyj konstruktora w klasie filtruj. W tym konstruktorze umieść jako argument nazwę pliku.

0

Nie w tym jest problem. Jeżeli zadziała ten kod:

filtruj fil=new filtruj(fileName);

to zadziała i ten:

filtruj fil=new filtruj();
fil.setNazwa(fileName);

W załączonego kodzie nie ma fragmentu, który miałby wypisać null. Jesteśmy skazani na zgadywanie i wizytę u wrózki.

0
bo napisał(a)

W załączonego kodzie nie ma fragmentu, który miałby wypisać null. Jesteśmy skazani na zgadywanie i wizytę u wrózki.

pliknazwa=getNazwa();
System.out.println(pliknazwa);
obie funkcje submit i aaa sa wywolywane po wcisnieciu przycisku

no zaraz bo moze ja zle rozumuje....
klasa upload
tworzony jest plik

file = File.createTempFile(prefix , "." + suffix, new File("c:/upload"));

przykladowo wysylam na serwer plik Hydrangeas.jpg

nastepnie

fileName = file.getName(); 

tu nazwa pliku jest Hydrangeas1243434563324.jpg

filtruj fil=new filtruj();
fil.setNazwa(fileName);

po czyms takim zostala przekazana nazwa pliku do klasy filtruj

public void setNazwa(String nazwa) {
              this.nazwa = nazwa;
System.out.println(nazwa+"setnazwa");
         }

po wypisaniu na konsoli faktycznie tak jest
Hydrangeas1243434563324.jpgsetnazwa

ale po wywołaniu aaa()

pliknazwa=getNazwa();
System.out.println(pliknazwa);

na konsoli mam null

po wywolaniu getNazwa() mam wartosc null
czy taka konstrukcja jest w ogole dobra?
pliknazwa=getNazwa();

0

Ale jak wywołujesz aaa()? aaa jest metodą w klasie filtruj

filtruj fil=new filtruj();
fil.setNazwa(fileName);
fil.aaa();

I teraz pojawia się null?

0

a no teraz nie jest null
czyli zle zrozumial jak to dziala...
to teraz jesli moge prosic o jakas podpowiedz
bo mam strone index.jsp odpowiedzialna za uplaod po wskazaniu pliku i kliknieciu na upload wywolywane jest uploadclass.submit() i pokazuja się stronka wlasnie z filtracja i przyciskiem filtruj filtruj.aaa()
i jak zrobic zebym po wcisnieciu filtruj w "pliknazwa" nie mial tego nulla?

0

dobra juz mniej wiecej wszystko chodzi tylko mam taki problem
uruchamiam cala aplikacje na serwerze tomcat
wchodze na innym kompie na stronke http://192.168.1.2:8080/jee/faces/index.jsp
wskazuje plik do filtracji klikam na filtruj i teraz przechodzi na strone filtracja.jsp
i na stronie powinny sie wyswietlic obrazki robie to w taki sposob

filtruj.jsp
<h:graphicImage id="up" alt=" sad" value="C:/upload/#{uploadclass.imgBefore}" > </h:graphicImage>

i tu pojawia się problem bo podalem nasz sztywno sciezke C:/upload/ i aplikacja chce pobrac obrazki z kompa na ktorym jestesmy
a jak to zmienic zeby pobieral z serwera?

1 użytkowników online, w tym zalogowanych: 0, gości: 1