Dados e upload de arquivo

3 respostas
T

to com o seguinte problema quando uso upload de arquivo os outros campos do formulario vem null…

tipo:
<form action=“upload3.jsp” method=“post” enctype=“multipart/form-data” name=“form1”>
<p>
<input name=“arquivo” type=“file” id=“arquivo”>
<input name=“arquivo1” type=“file” id=“arquivo”>

&lt;input name="arquivo2" type="file" id="arquivo"&gt;
</p>

<p>

<input type=“text” name=“textfield”>

<br>

<input type=“submit” name=“Submit” value=“Submit”>

</p>

</form>

<%=request.getParameter(textfield)%>

<%

String arquivo = “”;

boolean retorno = false;

// manda o diretorio de gravação e passa os arquivos em request, retorna verdadeiro e falso

retorno = arq.upload("/var/jakarta-tomcat-5.5.7/webapps/ROOT/internet/fotos_noticias/",request);

// retorna o nome do arquivo gerado

arquivo = arq.nome();

%>
<%=arquivo%>

oque faço galera pra ver os outros valores do formulario???

3 Respostas

M

Salve,

lembra-se daquele arquivo que eu postei para ti???

você vai verificar se o InputStream é um formulário de texto através do seguinte método:

in.isFormField&#40;&#41;;

Este método retorna true/false então é só usar um if para verficar se for campo do tipo file ou seja !in.isFormField() você executa as instruções que vem abaixo da declarção do InputStriam

T

mais como implemento isso pra imprimir meus campos txt e fazer o upload de arquivos?

Ex:

// imprimir no banco os txt

<%

banco(request.getParameter(txt));

%>

//apartir dessa linha faz upload
M

Salve,

Vou passar um exemplo:
response.setContentType&#40;&quot;text/html&quot;&#41;; // configura tipo de saída ao usuário
		
		PrintWriter out = response.getWriter&#40;&#41;;
		try &#123; 
			
			DiskFileUpload fu = new DiskFileUpload&#40;&#41;; 
			
			List fileItems = fu.parseRequest&#40;request&#41;; 
			
			fu.setSizeMax&#40; 40000 &#41;;
			
			Iterator i = fileItems.iterator&#40;&#41;; 
			
			while &#40; i.hasNext&#40;&#41; &#41;
			&#123;
				FileItem fi = &#40;FileItem&#41;i.next&#40;&#41;; 
				// processa informações contidas nos formulários
				if &#40; fi.isFormField&#40;&#41; &#41;
				&#123;
					if &#40; fi.getFieldName&#40;&#41;.equals&#40; &quot;ds_titulo&quot; &#41;&#41;
						ds_titulo = fi.getString&#40;&#41;;

				&#125;
				// processa uploads das imagens
				if &#40; !fi.isFormField&#40;&#41; &#41;
				&#123;
					enviaArquivo&#40; fi &#41;;
				&#125;
			&#125; 
		&#125;
		catch&#40;Exception e&#41; &#123; 
			out.println&#40;e.toString&#40;&#41;&#41;; 
		&#125;
e o método para gravar o arquivo no servidor:
public void enviaArquivo&#40; FileItem fi &#41; throws  IOException
	&#123;
		try &#123;
		InputStream in = fi.getInputStream&#40;&#41;; 
		// Obtém nome do arquivo
		String nomeArquivo = fi.getName&#40;&#41;; // valor do atributo filename
		int nom = nomeArquivo.lastIndexOf&#40; &quot;\\&quot; &#41;; 
		// busca somente o nome do arquivo
		nomeArquivo = nomeArquivo.substring&#40; nom + 1 &#41;;
		// salva o arquivo em
		File file = new File&#40;&quot;C&#58;\\upload\\&quot; + nomeArquivo +&quot;&quot;&#41;; 
		// obtém conteúdo do arquivo
		FileOutputStream fos = new FileOutputStream&#40;file&#41;; 
		
		int c; 
		while&#40;&#40;c = in.read&#40;&#41;&#41; != -1&#41; // lê linha a linha do arquivo
			fos.write&#40;c&#41;; // grava linha por linha
		
		fos.close&#40;&#41;; 
		// recupera arquivos enviados
		if &#40; fi.getFieldName&#40;&#41;.equals&#40;&quot;url_mimiatura&quot;&#41;&#41;
			url_mimiatura = &quot;C&#58;\\upload\\&quot; + nomeArquivo +&quot;&quot;;
		else 
			if &#40; fi.getFieldName&#40;&#41;.equals&#40;&quot;url_imagem&quot;&#41;&#41;
				url_imagem = &quot;C&#58;\\upload\\&quot; + nomeArquivo +&quot;&quot;;
		&#125; 
		catch &#40; Exception e &#41;
		&#123;
			System.out.println&#40; e.toString&#40;&#41; &#41;;
		&#125;
	&#125;

tenta aí!!! Espero ter ajudado.
:okok:

Criado 1 de março de 2005
Ultima resposta 8 de mar. de 2005
Respostas 3
Participantes 2