Ajuda Limitar o tamanho do Upload file

5 respostas
P

Pessoal com muito custo conseguir fazer um up load que funciona. mas agora preciso fazer uns tratamentos.
Preciso que ele so faça upload de uma determinada extensão de arquivo e que limite o tamanho do arquivo em 300k como faço isso.
Tem como fazer nesse codigo ai abaixo por que não entendo muito ainda de JSP!

Arquivo2.jsp
<html>
<head>
<title>Upload</title>
</head>
<body>
<form action="upload2.jsp" method="post" enctype="multipart/form-data" >
Selecione o arquivo 
  <input type="file" name="file1">
<input type="submit" value="Upload2" />
</form>
</body>
</html>

Read more: http://javafree.uol.com.br/topic-3516-Exemplo-de-upload-em-JSP.html#ixzz2ANKIY52H
upload2.jsp
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>

<%
try {
DiskFileUpload fu = new DiskFileUpload();

List fileItems = fu.parseRequest(request);

Iterator i = fileItems.iterator();

FileItem fi = (FileItem)i.next();

InputStream in = fi.getInputStream();

File file = new File("c:/arquivoSaida");

FileOutputStream fos = new FileOutputStream(file);

int c;
while((c = in.read()) != -1)
fos.write(c);

fos.close();
out.println("arquivo salvo: c:/arquivoSaida");
}
catch(Exception e) {
out.println(e.toString());
}
%>

Read more: http://javafree.uol.com.br/topic-3516-Exemplo-de-upload-em-JSP.html#ixzz2ANKQ931V

5 Respostas

Mikhas

Cria uma variavel acumuladora e adiciona o “c” a cada iteração do seu while. Quando bater o limite, voce pode lançar uma exception.

Você pode darnuma olhada aqui tambem: http://www.jsptube.com/servlet-tutorials/servlet-file-upload-example.html

jeffev

De uma olhada nesse tópico acho que poderá te ajudar.

C
Sera que isso ajuda?
upload.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<p>Upload de Arquivos do tipo GIF (somente do tipo gif e menores do que 1 megabyte)</p>
<form id="cadastro" enctype="multipart/form-data" name="cadastro" method="post" action="recebe_upload.php">
  <label>Arquivo
    <input name="arquivo" type="file" size="50" />
<br />
    <br />
  </label>
  <label>
    <input type="submit" value="enviar" />
  </label>
</form>
<p>&nbsp;</p>
</body>
</html>
recebe_upload.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<p>Verifação de envio do arquivo</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<?php

   $nome_arquivo    = $_FILES['arquivo']['name'];
   $tipo_arquivo    = $_FILES['arquivo']['type'];
   $tamanho_arquivo = $_FILES['arquivo']['size'];   
   
   echo "O nome do arquivo = " . $nome_arquivo."<br>";
   echo "O typo do arquivo = " . $tipo_arquivo."<br>";   
   echo "O tamanho do arquivo = " . $tamanho_arquivo."<br>";
   
   if (strpos($tipo_arquivo,'gif') && ($tamanho_arquivo < 1000000))
   { 
	   if (move_uploaded_file($_FILES['arquivo']['tmp_name'],$nome_arquivo))
		   echo "Arquivo enviado com sucesso<br>";
	   else  
		   echo "<h1>Não foi possível enviar esse Arquivo! ".$_FILES['arquivo']['error']."</h1><br>";   }
   else 
   	   echo "Não é possivel enviar arquivos maiores do que 1 megabyte e que não sejam do tipo gif<br>";
?>
</body>
</html>
Phelps

Cara uma dica que eu posso te dar é:
Dá só uma estudada básica em scriptlet, depois estude o padrão MVC, e frameworks como o struts2, spring, etc.
Fazer as coisas com scriptlet sempre fica mais difícil, já com um Framework a coisa fica bem fácil, além de ter toda uma documentação com tutoriais e tudo, para fazer tarefas como a sua é preciso simples linhas de código. No struts o seu problema é solucionado com:

struts.multipart.parser=jakarta struts.multipart.saveDir= struts.multipart.maxSize=2097152

P

Mikhas:
Cria uma variavel acumuladora e adiciona o “c” a cada iteração do seu while. Quando bater o limite, voce pode lançar uma exception.

Você pode darnuma olhada aqui tambem: http://www.jsptube.com/servlet-tutorials/servlet-file-upload-example.html

Mikhas sera que você poderia ser um pouco mais claro não entendi o que vc disse! sou novato? Como assim uma variavel acumuladora? seria uma variavel tipo auto incremento dentro de while???

Criado 30 de outubro de 2012
Ultima resposta 31 de out. de 2012
Respostas 5
Participantes 5