Caros,
se eu rodar esse código diretamente do Eclipse,tudo funciona ok.No entanto,se eu empacotar a classe num .jar e executar,o metodo copiar() parece não estar sendo chamado.Já assinei o jar.O que pode estar errado?
public void actionPerformed(ActionEvent e)
{
JComponent c = (JComponent) e.getSource();
if (c == capture)
{
String nomeFoto = JOptionPane.showInputDialog("Número do Documento");
// Grab a frame
FrameGrabbingControl fgc = (FrameGrabbingControl)
player.getControl("javax.media.control.FrameGrabbingControl");
buf = fgc.grabFrame();
// Convert it to an image
btoi = new BufferToImage((VideoFormat)buf.getFormat());
img = btoi.createImage(buf);
// show the image
imgpanel.setImage(img);
File dir = new File("c://fotosSTDS//");
if(!dir.exists())dir.mkdir();
String caminhoArquivo = "c://fotosSTDS//"+nomeFoto+".jpg";
// save image
saveJPG(img,caminhoArquivo);
File origem = new File(caminhoArquivo);
File destino = new File("C://Arquivos de programas//Tomcat 6.0//fotosSTDS");
//File destino = new File("//venus//E$//Tomcat6//fotosSTDS");
try {
copiar(origem,destino);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
public static void copiar(File origem,File destino) throws IOException{
FileUtils.copyFileToDirectory( origem, destino );
}
cara,
sua maquina cliente tem esse caminho de pasta, C://Arquivos de programas//Tomcat 6.0//fotosSTDS?
t+
[quote=alissonvla]cara,
sua maquina cliente tem esse caminho de pasta, C://Arquivos de programas//Tomcat 6.0//fotosSTDS?
t+[/quote]
Sim,tanto é que direto pelo Eclipse tá dando ok.
vc ja tentou habiliar o console do java no browser para ver o erro que está ocorrendo.
t+
Bem,consegui contornar esse problema,mas surgiu outro,então vou aproveitar o mesmo tópico:
Preciso salvar o arquivo numa máquina da rede,algo como:
String caminhoArquivo = "//servidor//E$//Tomcat6//fotos";
saveJPG(img,caminhoArquivo);
Esse é o metodo saveJPG(estou recendo um FileNotFoundException)
public static void saveJPG(Image img, String s)
{
BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img, null, null);
FileOutputStream out = null;
try
{
out = new FileOutputStream(s);
}
catch (java.io.FileNotFoundException io)
{
System.out.println("File Not Found");
}
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(0.5f,false);
encoder.setJPEGEncodeParam(param);
try
{
encoder.encode(bi);
out.close();
}
catch (java.io.IOException io)
{
System.out.println("IOException");
}
}
}
Boa noite a todos.
A pasta C://Arquivos de programas//Tomcat 6.0//fotosSTDS está compartilhada no Servidor e mapeada no Cliente ?
Se não estiver, o seu método “Copiar” não conseguirá copiar o arquivo, eis que, se a pasta não estiver compartilhada, ela não é exergada na rede, se não tiver mapeada no Cliente, voce terá que autenticar o usuário do servidor assim que o acessa pela primeira vez.
O que voce poderia fazer é tentar é fazer o upload do arquivo com as bibliotecas org.apache.commons.fileupload, é só baixar e procurar a documentação na internet, no link http://commons.apache.org/fileupload/, é mais seguro e recomendável, do que você ficar compartilhando pastas e mapeando-o em diversos clientes, isto é, se voce estiver desenvolvendo a aplicação em uma intranet, quanto na internet, já viu que isto é humanamente impossível.
Um abraço.