Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Paschoalin

[Resolvido] Largura e Altura usando FSO

Recommended Posts

Estou com uma dúvida cruel, onde acho milhares de resposta, mas nenhuma que resolva o meu problema !

 

Preciso fazer upload de uma imagem, e salvar no MySql os dados desta imagem, nome, extenção, tamanho, largura e altura usando o componente AspSmartUpload.

 

Bom, até agora consegui quase tudo, menos largura e altura !

 

Meu código, padrão, bem simples.

 

Dim SmartUpload
Dim file

Set SmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
SmartUpload.MaxFileSize = 2000000
SmartUpload.AllowedFilesList = "gif,jpeg,jpg,png"
SmartUpload.Upload

For each file In SmartUpload.Files

If not file.IsMissing Then
Imagem = file.FileName

file.SaveAs(Server.MapPath("../SmartUpload/" & Imagem))

tamanho = file.Size
extensao = file.FileExt
End If
Next

'Adiciono no bd
Conn.Execute "INSERT INTO banco_imagens"&_
"(datadia, nome, tamanho, extensao) VALUES "&_
"('" & now() & "', '" & Imagem & "', '" & tamanho & "', '" & extensao & "')"

Response.Write("Imagem adicionada com sucesso !")

Mas agora, como pegar a largura e altura ?

 

Bom, vejo que no SmartUpload ele não tem uma variavel que recupera isto, como por exemplo o do tamanho (file.Size) ou da extensão (file.FileExt), então procurando na net achei um SUB que altera o tamanho da imagem que já existe no servidor, agora gostaria de tentar usar este código a meu favor, mas não obtive sucesso, alguêm poderia saber como eu faria ?

 

Dêem uma olhada no código abaixo que achei:

dim iWidth, iheight
sub ImgDimension(img)
dim myImg, fs
Set fs= CreateObject("Scripting.FileSystemObject")
if not fs.fileExists(img) then exit sub
set myImg = loadpicture(img)
iWidth = round(myImg.width / 26.4583)
iheight = round(myImg.height / 26.4583)
set myImg = nothing
end sub

ImgDimension(Server.MapPath("server image file"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse loadpicture(img) provavelmente é uma função criada no código.

 

O tamanho da imagem você consegue pegar usando o componente ASPJEG (pesquise sobre o mesmo aqui no Fórum), entre outros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, obrigado hargon, vou caçar aqui.... e desculpe pelos 3 posts iguais, deu um pau aqui no IE, e estava cancelando todos os meus post, depois de 5 minutos, os 3 apareceram lá ^^

 

*EDIT:*

 

Li a respeito aqui, bom pelo jeito o melhor que tenho que fazer é mudar meu componente de Upload né ?

Encontro milheras de exemplos em Persists, mas NADA mais especifico em SmartUpload !

 

 

Agora, só digam uma coisa, pelo pouco que li sobre o Persist, ele separa os tipos de imagens ? cada extenção tem um tipo de componente diferente ? apesar que agora vou ler melhor sobre o Persist.... mas isso ai !

 

Qualquer opinião é muito bem vinda !

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilizando o Persits Upload, ou o componente AutoImageInfo ,você pega as propriedades sobre arquivos de imagem ASP e ASP.NET. Adquire tal informação como largura de imagem, altura, tamanho de arquivo, ultima modificação, etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer o que o xanburzum disse, ou então usar ASPJPEG + o componente de Upload que você já está utilizando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esses componentes do Persits agora são free? Existem outras opções boas como o CrazyBeavers Imager Resizer do meu amigo Karl.

 

Att,

 

Fabio Zendhi Nagao (nagaozen)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Persits não é free não... mas a maioria das hospedagem 'não todas' oferecem este serviço !

Por exemplo eu tenho uma revenda... e tenho várias opções de componentes para usar...

 

Agora a respeito do CrazyBeavers Imager Resizer me parece que ele somente altera o tamanho da imagem, não recupera os dados na tela !

E ele pega uma imagem já salva... não um upload, apesar que com Persits.JPEG é quase a mesma coisa, porém ele recupera os dados e me retorna os valores. Eu entrei no site dele e puxei o arquivo e foi o que me pareceu...

 

Mas a minha dúvida já foi resolvida, caso queira ver: Veja Aqui

 

**Este post na verdade foi criado pq não conseguia responder no tópico original que tinha criado, citado acima, e tb nem sei dizer... mas eu dava Reply e só ficava carregando a página sabe e não ia.... heheheehe "paus da internet" !

 

 

Abraços !

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo que tenho, mas utilizando o Persits Upload,verifica se seu host oferece,

e você pode adaptá-lo do seu jeito tb.

 

<!--#include file="conexao.asp"--> 
<html> 
<body> 

<% 

'Aqui definimos o caminho físico em que os arquivos iram ser salvos, tanto os thumbs quanto os finais 

Dirfinal = "C:\Inetpub\wwwroot\ASP\imagem\fotos\" 

'Criamos e instânciamos o objeto responsavel pro fazer o Upload da imagem que vamos tratar (ASPUpload) 

Set Upload = Server.CreateObject("Persits.Upload.1") 

'Mandamos com que ele salve dos os arquivos recebidos pelo Formulário no diretório específicado 

Upload.Save(Dirfinal) 

'Queremos poder oferecer algumas informações sobre o arquivo modificado então referenciamos ele através da varialvel Arquivo 

Set Arquivo = Upload.Files("File") 

'Nessas variáveis são armazenados o caminho do arquivo, e através de um Split o nome e sua extensão. 

Caminho = Arquivo.Path 
Nome = Split(Caminho,"\") 
Fim = ubound(Nome) 

Extensao = Split(Nome(Fim),".") 

'Instanciamos novamente outro objeto que agora irá tratar a imagem para nós 

Set Imagem = Server.CreateObject("Persits.Jpeg") 

'Abrimos o arquivo e modificamos ele da forma que queremos 

Imagem.Open Caminho 

Largura = Imagem.Width 
Altura = Imagem.Height 

Imagem.Width = 100 
Imagem.Height = 100 

Imagem.Sharpen 1, 150 

'Instrução que salva o arquivo modificado com o nome de foto_small.jpg para sabermos sempre qual arquivo abrir como thumb 

Imagem.Save Dirfinal & Extensao(0) & "_small." & Extensao(1) 

'Objeto ASP que trabalha com arquivos e irá nos fornecer as informações sobre o arquivo final, modificado. 

Set fso = Server.CreateObject("Scripting.FileSystemObject") 

Set ObjArquivo = fso.GetFile(Dirfinal & Extensao(0) & "_small." & Extensao(1)) 

'Com base nas informações que temos, podemos recuperar as informações do novo arquivo e exibi-las 

ArqINo = Nome(Fim) 
ArqICa = Arquivo.Path 
ArqITa = (Arquivo.Size / 1024) 

ArqFNo = Extensao(0) & "_small." & Extensao(1) 
ArqFCa = Dirfinal & Extensao(0) & "_small." & Extensao(1) 
ArqFTa = (ObjArquivo.Size / 1024) 

Response.Write "Arquivo: " & ArqINo & "<BR>" 
Response.Write "Extensão: " & Extensao(1) & "<BR>" 
Response.Write "Caminho: " & ArqICa & "<BR>" 
Response.Write "Tamanho: " & ArqITa & " Kb - " & Largura & "x" & Altura & "<BR><BR>" 

Response.Write "Arquivo: " & ArqFNo  & "<BR>" 
Response.Write "Extensão: " & Extensao(1) & "<BR>" 
Response.Write "Caminho: " & ArqFCa & "<BR>" 
Response.Write "Tamanho: " & ArqFTa & " Kb - " & 100 & "x" & 100 & "<BR><BR>" 

'Rotina do arquivo de inclusão que abre a conexão com o banco de dados 

AbrirConexao() 

'Instrucao SQL que vai armazenar as informações dos arquivos no banco de dados, para mais tarde exibi-los 

SQL = "INSERT INTO tb_imagens (nome_big, nome_small, caminho_big, caminho_small, altura, largura) VALUES ('" & _ 
ArqINo & "','" & ArqFNo & "','" &Replace(ArqICa, "\", asc("\")) & "','" & Replace(ArqFCa, "\", Asc("\")) & _ 
"'," & Altura & "," & Largura & ")" 

'Executando a query... 

conn.execute SQL 

Response.Write "Imagem Inserida com Sucesso!" 

'Fechamento de todos os nossos objetos para liberar memória 

FecharConexao() 

Set conn = Nothing 
Set Imagem = Nothing 
Set fs = Nothing 
%> 

</body> 
</html>

e para ver a imagem

 

<!--#include file="conexao.asp"--> 
<html> 
<head> 
<title>Ver Imagens</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<script> 
//funcao java script criada no DreamWeaver que abre um popup recebendo alguns parametros 

var popUpWin=0; 
function popUpWindow(URLStr, left, top, width, height) 
{ 
  if(popUpWin) 
  { 
	if(!popUpWin.closed) popUpWin.close(); 
  } 
  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+''); 
} 

</script> 
</head> 
<body> 
<% 

'Instanciando um Recordset que será responsável por armazenar os dados dos arquivos 
Set rs = Server.CreateObject("ADODB.Recordset") 

'Query de Busca 
SQL = "SELECT * FROM tb_imagens" 


'Abrindo conexao com o banco novamente e executando a instruçao SQL 
AbrirConexao() 

rs.Open SQL, conn 

%> 
<table width="100%"  border="0" cellspacing="0" cellpadding="0"> 
<% 

'Após os dados retornados, colocamos dentro de um laço utilizando HTML para exibir apenas 3 thumbnails por linha 
Do Until rs.EOF 
Response.Write "<tr>" & vbNewLine 
   For i = 0 To 2 
	  IF Not rs.EOF Then 
		 %> 
		 <td align="center"> 
			<table border="0" cellspacing="0" cellpadding="0"> 
			  <tr> 
			   <td align="center" valign="middle"><%=rs.Fields("nome_small").Value%></td> 
			  </tr> 
<% 'Passamos no link da imagem a função Javascript com os dados do caminho do arquivo para abrirmos o popup, junto com o tamanho da imagem via query para um arquivo que ira exibir a imagem%> 
			  <tr> 
			   <td align="center" valign="top"><a href="java script: popUpWindow('popup.asp?nome=<%=rs.Fields("nome_big").Value%>', 0, 0, <%=rs.Fields("Largura").Value%>,<%=rs.Fields("Altura").Value%>);"><img src="fotos/<%=rs.Fields("nome_small").Value%>" border="0"></a></td> 
			  </tr> 
			  <tr> 
			   <td align="center" valign="middle"><%=rs.Fields("Largura").Value%>x<%=rs.Fields("Altura").Value%></td> 
			  </tr> 
			</table> 
		 </td> 
		 <% 
		 rs.MoveNext 
	  ELSE 
		 Response.Write("<td></td>" & vbNewLine) 
	  End If 
	   
'Fim dos laços e fechamento dos objetos 
	   
   Next 
Response.Write "</tr>" & vbNewLine 
Loop 

FecharConexao() 

Set conn = Nothing 
Set rs = nothing 
%> 
</table> 

</body> 
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, creio que o problema dele foi resolvido no outro tópico não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.