To com um problemão aqui… implementei um jsp de nome importa que que tem a função de receber os dados de uma page e gravar no banco de dados.
O problema é que ela só recebe os dados quando enviados pelo mozilla ou netscape, quando o explorer é usado, naum recebe nada, tudo null… por que?
talvez algum problema no cabeçalho do arquivo importa ou é com o fileUpload mesmo, biblioteca que estou usando para realizar os uploads.
ou o explorer não envia no mesmo formato que o mozilla, pois no form da page principal, o enctype está como multipart/form-data
Vou postar um pedaço do código para melhor análise…
<%@page language="java" import="java.util.*,javax.swing.*,java.sql.*,java.io.*,org.apache.commons.fileupload.*" errorPage=""%>
<%@ include file="variaveis.jsp"%>
<%@ include file="global/conexaoTeste.jsp" %>
<%@ include file="global/metodos.jsp" %>
<%@ include file="metodos_importa.jsp" %>
<html>
<body>
<center>
<table border = 1>
<%
FileItem fitem = null;
String arquivo ="", conteudoArquivo = "";
String tipo = "Vazio";
.......
//variavel recebe verdadeiro se o conteudo recebido é um arquivo
boolean isMultipart = FileUpload.isMultipartContent(request);
//se for um arquivo então ...
if (isMultipart) {
// Cria uma novo file upload
DiskFileUpload upload = new DiskFileUpload();
// Seta o tamanho permitido pelo upload
upload.setSizeMax(50*1024*1024); //50Mb
upload.setRepositoryPath("/tmp/");
// recebe o arquivo como request
List items = upload.parseRequest(request);
Iterator it = items.iterator();
//escreve em partes o arquivo em um local pre-definido em fitem.writem
while (it.hasNext()) {
fitem = (FileItem) it.next();
//verifica se é texto do form, se for, coleta os valores
//invormados pelos usuários e atribui às variavies corres-
//pondentes neste arquivo importa.jsp
if (fitem.isFormField())
{
//atribui o valor do campo das colunas ao array valorVarArray
for ( int i = 0 ; i < nomeColArray.length; i++){
if (fitem.getFieldName().equals(nomeColArray[i])){
String valorColuna = fitem.getString();
......
}
}
........
else if ((!fitem.isFormField()) && (!fitem.getName().equals ("") )) {
out.println("Entrou em arquivo");
fitem.write(new File("/tmp/" + fitem.getName()));
arquivo = "/tmp/" + fitem.getName();
DataInputStream inputStream;
try{
//cria um inputStream para abrir o arquivo gravado
inputStream = new DataInputStream ( new BufferedInputStream (new FileInputStream(arquivo)));
String linha;
//le linha por linha do arquivo aberto até achar null
// grava cada linha lida na variável linha
while ((linha = inputStream.readLine()) != null)
{
linha += "\n";%>
<%--=linha--%>
<%conteudoArquivo += linha ;
}%>
<%inputStream.close();%>
<%}catch (Exception e)
{
System.err.println("Erro na abertura do arquivo " + fitem.getSize());
ocorreuErro = true;
break;
}
}
[size=“11”]
[color=“red”]
- Editado: Aumente as chances de alguém responder o seu tópico. Use BBCode em seus códigos para mantê-los identados e mais legíveis para outros usuários. - Matheus[/color][/size] :joia: