Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Quero subir apenas fotos e proibir qualquer arquivo que não seja. Mais não estou conseguindo fazer e não entendo porque.
Tenho assim:
<form method="POST" enctype="multipart/form-data" action="upload.asp">
<input type="FILE" size="40" name="FILE1" />
<br>
<input type="FILE" size="40" name="FILE2"><br>
<input type="FILE" size="40" name="FILE3"><br>
<input type="FILE" size="40" name="FILE4"><br>
<input type="FILE" size="40" name="FILE5"><br>
<input type="FILE" size="40" name="FILE6"><br>
<input type="FILE" size="40" name="FILE7"><br>
<input type="FILE" size="40" name="FILE8"><br>
<input type="FILE" size="40" name="FILE9"><br>
<input type="FILE" size="40" name="FILE10"><br>
<input type=submit value="Subir arquivos">
</form>
E o codigo assim:
<%
If session("sesion") <> "" then
Dim objUpload
Set objUpload = Server.CreateObject("Dundas.Upload.2")
objUpload.MaxFileSize = 150000
objUpload.UseVirtualDir = True
objUpload.UseUniqueNames = False
objUpload.Save session("eu") &"/"
Set objUpload = Nothing
Response.Write "Upload efetuado com sucesso"
end if
%>
Desta forma funciona o problema que tenho é que usuarios podem subir qualquer coisa...
Eu estava tentando fazer assim mais da erro:
If File.ImageType = "UNKNOWN" Then
Response.Write "Não é uma imagem."
Response.End
End If
Se alguem puder me da alguma dica de como posso fazer seria muito grato.
Eu tentei antes desta forma:
If Lcase(Right(filename,3)) = "jpg" Or Lcase(Right(filename,3)) = "gif" then
O problema é que não reconhece o filename, eu tentei de varias formas como: File.Filename , File.ImageType ...
Você sabe como posso recuperar o nome do arquivo? Obrigado
O Dundas ASPUPLOAD retorna o tipo do arquivo através do ContentType. Ex. File.ContentType
Para pegar a extensão utilize componente.GetFileExt(File.OriginalPath)
>
O Dundas ASPUPLOAD retorna o tipo do arquivo através do ContentType. Ex. File.ContentType
Para pegar a extensão utilize componente.GetFileExt(File.OriginalPath)
Obrigado, vou testar aqui mais ainda não entendo o que seria o File.OriginalPath. Se for a ruta da onde vem o arquivo eu vou precisar fazer um bucle porque no caso estou usando 10 campos. Funcionaria assim?
t+
Estava lendo o manual de um e tentando fazer com o outro componente... Não sei explicar porque mais vou tentar fazer bem agora.
Obrigado pela ajuda
File.OriginalPath pega o caminho original do arquivo.
File se referia ao FOR que criado: For each File in Upload.files
>
File.OriginalPath pega o caminho original do arquivo.
File se referia ao FOR que criado: For each File in Upload.files
Vou testar quando eu chegar em casa.
Eu fiz assim com o outro componente e funciono certinho. Dentro do bucle vou gravar os dados no banco de dados.
<%
Set Upload = Server.CreateObject("Persits.Upload")
Count = Upload.Save(Server.Mappath("imagenes/"))
For Each File in Upload.Files
If File.ImageType = "UNKNOWN" Then
Response.write "No es una imagene"
File.Delete
Response.End
else
For Each Item in Upload.Form
Response.Write Item.Name & "= " & Item.Value & "<BR>"
Next
Response.Write File.Name & "= " & File.Path & " (" & File.Size &" bytes)<BR>"
End ifResponse.Write Count & " Arquivos subidos"
%>
Obrigado uma vez mais
T+
a um tempinho atras eu postei no laboratorio de scripts uma classe de upload com os principais componentes. procura lá que tens uma referencia
faça a comparação com fotos, pegue o nome da foto e faça uma função para verificar as três ultimas letras, no caso o JPG, GIF, PNG, se for diferentes dessas ai sim você bloqueia!!