Pessoal, tou usando o Jakarta FileUpload e preciso gravar um arquivo na rede.
to usando o método write e fazendo
write(new File("//nomedamaquina/compartilhamento/arquivo.ext"));
mas isso não dá certo, alguma dica???
Pessoal, tou usando o Jakarta FileUpload e preciso gravar um arquivo na rede.
to usando o método write e fazendo
write(new File("//nomedamaquina/compartilhamento/arquivo.ext"));
mas isso não dá certo, alguma dica???
O q esta acontecendo? Ele esta dando algum erro? Esta gerando em outro lugar? Nao esta gerando?
Abraco
Qual é o erro que dá?
Exception in thread “main” java.io.FileNotFoundException:
\servidor\share\arquivo
(The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at Test168.main(Test168.java:5)
ou
Exception in thread “main” java.io.FileNotFoundException: \servidor\share\arquivo (Access is denied)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at Test168.main(Test168.java:5)
Se for o erro “Access is denied”, é realmente isso (não é “mensagem de erro errada” que às vezes acontece), e você precisa dar direito de acesso aos arquivos e diretórios para o usuário…
Não é problema de usar \ ou // porque o Java já converte as barras para a direção certa.
[code]type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
org.apache.commons.fileupload.DefaultFileItem.write(DefaultFileItem.java:442)
org.apache.jsp.cadastraPortaria_jsp._jspService(cadastraPortaria_jsp.java:126)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.[/code]
O que é estranhíssimo pois é como se o fileItem estivesse retornando NULL… e quando eu bot um diretório local o código funciona
Meu código ´s o seguinte:
else {
try {
data.replace('/','.');
fitem.write(new File("//intranet/diogenes/teste.doc"));
}
catch (Exception e) {
%>
<%= e %>
<%
}
}
Se vc sabe utilizar o pacote io e net do API, vc faz por elas.
Eu sei usar mas eu tenho que tratar esse arquivo que é enviado pelo browser por meio de um jsp.
else {
try {
//data.replace('/','.');
File f = new File("c:/novo/teste.doc");
if (fitem == null)
%>
<p>fitem == null</p>
<%
fitem.write(f);
}
catch (Exception e) {
%>
<%= e %>
<%
}
}
else {
try {
//data.replace('/','.');
File f = new File("c:/novo/teste.doc");
if (fitem == null)
%>
<p>fitem == null</p>
<%
fitem.write(f);
}
catch (Exception e) {
%>
<%= e %>
<%
}
}
Olhem que estranho, enquanto o fitem SEMPRE é NULL, quando mudo do new File para um lugar no HD o arquivo é escrito numa boa, apesar do fitem ser NULL. Quando o local é na rede dá NullPointerException…
De qualquer maneira veja se tem algum problema com esse usuário.
Um exemplo: quando você usa o Tomcat (ou JBoss, ou outro servidor de aplicações, como o Sun Java System Application Server) como serviço do Windows, ele pode ser instalado como “Local System Account” (não sei o nome certo em português, meu Windows 2003 está em inglês) - nesse caso você não vai conseguir acessar a rede mesmo, ou então como “This account”. Veja no Control Panel, Services, como está registrado o Tomcat (supondo que você está usando esse cara, e que é um serviço do Windows). Você precisaria configurar como “This account” e cadastrar um usuário e senha válidos na rede.