Ir para conteúdo

POWERED BY:

Arquivado

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

Rasp

[Resolvido] Upload gerando thumb

Recommended Posts

Fala galera beleza?

Bem mais uma vez me deparando com um probleminha no ASP resolvi pedir ajuda a galera daqui, pois vcs sempre me dão umas dicas bem bacanas, e como ASP não é muito minha praia, mais gosto de mexer, espero que possam me ajudar ;D

 

Seguinte... fiz um simples sisteminha pra administração de um site pra Upload de fotos e informações... o que acontece é que as pessoas que sobem as fotos não sabem trabalhar com editores de imagem, mesmo sendo explicadas, e isso acaba atrapalhando pois leva muito tempo para que as fotos descarregem no site. Enfim gostaria de incluir no meu script de Upload algum script se possível para diminuir o tamanho das fotos, gerar thumbs e salvar no BD (access) os mesmos... porém não encontro nada na web que me ajude...

 

Ficaria grato se vcs pudesse me dar essa luz

 

abaixo segue meu script de Upload

 

<!-- #include file="protecao.asp" -->
<% Server.ScriptTimeout = 900000 %>
<!-- #include file="Loader.asp" -->
<!-- #include file="includes/includes.asp" -->
<%
Response.Buffer = True
'load object
Dim load
Set load = new Loader
'calling initialize method
load.initialize
'File binary data
Dim fileData
	fileData = load.getFileData("file")
'File name
Dim fileName
	fileName = LCase(load.getFileName("file"))
%>
<html>
<head>
<title>Upload</title>
</head>
<body>
<%
arquivo=fileName
'set rsv = db.execute("select * from T10_Documentos where nm_arquivo = '"&fileName&"'")
'if rsv.eof then
' File path
Dim filePath
	filePath = load.getFilePath("file")
' File path complete
Dim filePathComplete
	filePathComplete = load.getFilePathComplete("file")
' File size
Dim fileSize
	fileSize = load.getFileSize("file")
' File size translated
Dim fileSizeTranslated
	fileSizeTranslated = load.getFileSizeTranslated("file")
' Content Type
Dim contentType
	contentType = load.getContentType("file")
' No. of Form elements
Dim countElements
	countElements = load.Count
' Value of text input field "name"
Dim nameInput
	nameInput = load.getValue("name")
' Path where file will be uploaded

i = len(fileName)
ext = MID(fileName, i-3, 4)
novo = "fotos_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext	
'Dim pathToFile
	'pathToFile = Server.mapPath("documentos_originais") & "\" & arquivo
Dim pathToFile2
	pathToFile2 = Server.mapPath("fotos") & "\" & novo
'Dim fileUploaded
	'fileUploaded = load.saveToFile ("file", pathToFile)
Dim fileUploaded2
	fileUploaded2 = load.saveToFile ("file", pathToFile2)
Set load = Nothing

If fileUploaded2 = True Then
on error resume next
muda = ""
cod = session("cod")

if session("foto") = 1 then
	muda = "ds_foto1"
end if
if session("foto") = 2 then
	muda = "ds_foto2"
end if
if session("foto") = 3 then
	muda = "ds_foto3"
end if
if session("foto") = 4 then
	muda = "ds_foto4"
end if
if session("foto") = 5 then
	muda = "ds_foto5"
end if

str = "Update T01_Imovel set "
str = str & ""& muda &" = '"& novo &"' " 
str = str & "WHERE t01_cd_imovel = "& cod &""

set rs2 = db.execute(str)
	
		msg= "Upload do arquivo realizado com sucesso."
		response.redirect "foto1.asp?cod="&cod

	Else
		msg="Erro no envio do arquivo.\n Tente Novamente ou entre em contato com o webmaster."
'		response.write err.description			
		response.redirect "foto1.asp?cod="&cod
  
	  END IF
 ' response.redirect "foto1.asp?cod="&request("cod")	
f%>

Vlww brigadãao!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, voce pode gerar a miniatura com componentes de manipulação de imagem como o sugerido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falae galera!

Estou com dúvidas de como implementar estes 2 códigos juntos... estou utilizando este do ASPJpeg

 

<%
'Criando o thumbnail:
Set Jpeg = Server.CreateObject("Persits.Jpeg")

'Caminho da Imagem

Path = "e:\home\xyz\web\teste" & "\teste.jpg"

'Busca a Imagem
Jpeg.Open Path

'Especifica o tamanho da imagem, nesse caso ela ficará 50% menor
Jpeg.Width = Jpeg.OriginalWidth / 2
Jpeg.Height = Jpeg.OriginalHeight / 2

'Esse método é opcional, usado para melhorar o visual da imagem

Jpeg.Sharpen 1, 150

'Cria um thumbnail e o grava no caminho abaixo
Jpeg.Save "e:\home\xyz\web\teste" & "\teste_mini.jpg"

'Para enviar o thumbnail para o browser do cliente utilize o método SendBinary:
Response.Write jpeg.SendBinary
%>

No final do script é necessário atribuir o valor "Nothing" para os objetos criados. Para o exemplo acima ficaria assim:

<%Set Jpeg = Nothing%>

 

Public2004 Valeu pela dica camarada!!!

 

 

Alguém poderia me dar um help de como juntar ambos?

Vlw pela atenção

 

Abss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acrescente o código da imagem após a linha

set rs2 = db.execute(str) que está logo acima do else (no primeiro código).

 

Depois você informa o endereço físico da imagem aqui Path (já falando último código postado).

 

Aqui Jpeg.Save você informa onde salvar a thumb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa hargon,

Primeiramente obrigado pela ajuda aí e também obrigado ao Mário e o Public2004...

Cara fiz tudo direitinho como você disse, aí fiz tentei modificar pra ele pegar os arquivos do diretorio e gerar o thumb, só que está fazendo o up da imagem na boa na pasta certo, mais nem gera o thumb nem publica a foto no site já tentei modificar, mais as vezes dependendo do que mexi nem sobe

 

o cód ficou assim:

 

<%
Response.Buffer = True
	' Carrega o objeto
	Dim load
	Set load = new Loader
	' Carrega a inicialização
	load.initialize
	' Arquivo
	Dim fileData
		fileData = load.getFileData("file")
	' Nome do Arquivo
	Dim fileName
	fileName = LCase(load.getFileName("file"))

arquivo=fileName
	' Caminho do arquivo
	Dim filePath
		filePath = load.getFilePath("file")
	' Caminho do arquivo completo
	Dim filePathComplete
		filePathComplete = load.getFilePathComplete("file")
	' Tamanho do arquivo
	Dim fileSize
		fileSize = load.getFileSize("file")
	' Tamanho do arquivo transferido
	Dim fileSizeTranslated
		fileSizeTranslated = load.getFileSizeTranslated("file")
	' Tipos de arquivo
	Dim contentType
		contentType = load.getContentType("file")
	' Número de elementos carregados
	Dim countElements
		countElements = load.Count
	' Nome do campo "name"
	Dim nameInput
		nameInput = load.getValue("name")
	' Caminho onde o arquivo será salvo
	i = len(fileName)
	ext = MID(fileName, i-3, 4)
	novo = "fotos_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
	'Dim pathToFile
		'pathToFile = Server.mapPath("documentos_originais") & "\" & arquivo
	Dim pathToFile2
		pathToFile2 = Server.mapPath("fotos") & "\" & novo
	'Dim fileUploaded
		'fileUploaded = load.saveToFile ("file", pathToFile)
	Dim fileUploaded2
		fileUploaded2 = load.saveToFile ("file", pathToFile2)
Set load = Nothing

If fileUploaded2 = True Then
	on error resume next
	muda = ""
	cod = session("cod")
	if session("foto") = 1 then
		muda = "ds_foto1"
	end if
	if session("foto") = 2 then
		muda = "ds_foto2"
	end if
	if session("foto") = 3 then
		muda = "ds_foto3"
	end if
	if session("foto") = 4 then
		muda = "ds_foto4"
	end if
	if session("foto") = 5 then
		muda = "ds_foto5"
	end if

	str = "Update T01_Imovel set"
	str = str & ""& muda &" = '"& novo &"' "
	str = str & "WHERE t01_cd_imovel = "& cod &""
	set rs2 = db.execute(str)

	' Componente de manipulação de imagens ASPJep
	' Criando o thumbnail
	Set Jpeg = Server.CreateObject("Persits.Jpeg")
	' Caminho da Imagem
	Path = "D:\webs\issad1\adm\fotos" & "fotos_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
	' Busca a Imagem
	Jpeg.Open Path
	' Especifica o tamanho da imagem, nesse caso ela ficará 50% menor
	Jpeg.Width = Jpeg.OriginalWidth / 2
	Jpeg.Height = Jpeg.OriginalHeight / 2
	' Esse método é opcional, usado para melhorar o visual da imagem
	Jpeg.Sharpen 1, 150
	' Cria um thumbnail e o grava no caminho abaixo
	Jpeg.Save "D:\webs\issad1\adm\thumbs" & "thumbs_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
	' Para enviar o thumbnail para o browser do cliente utilize o método SendBinary
	Response.Write jpeg.SendBinary
Set Jpeg = Nothing

	msg = "Upload do arquivo realizado com sucesso."
		response.redirect "foto1.asp?cod="&cod
else
	msg = "Erro no envio do arquivo.\nTente Novamente ou entre em contato com o webmaster."
		response.redirect "foto1.asp?cod="&cod
end if
%>

Vlw cara brigadão pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exibida alguma mensagem de erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o arquivo original está sendo upado normal pro servidor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala hargon e Mário,

O que acontece é o seguinte... o arquivo original é upado e renomeado conforme o scrip de upload normalmente pro servidor, mais não acontece nada mais depois disso, o script parece ignorar a parte do ASPJpeg e também não salva no BD

 

Quanto a sua pergunta hargon, não está apresentando mensagem de erro não... as que apresentaram foi mole meu com ';'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa... falae galera!

Consegui finalmente fazer subir os arquivos, gerar o thumb no tamanho certo e gravar a imagem principal no BD, porém não consegui fazer salvar o thumb gerado... não sei qual string devo usar

 

Segue o cod como está atualmente (funcionando):

 

<%
Response.Buffer = True
	' Carrega o objeto
	Dim load
	Set load = new Loader
	' Carrega a inicialização
	load.initialize
	' Arquivo
	Dim fileData
		fileData = load.getFileData("file")
	' Nome do Arquivo
	Dim fileName
		fileName = LCase(load.getFileName("file"))

	arquivo=fileName
	' Caminho do arquivo
	Dim filePath
		filePath = load.getFilePath("file")
	' Caminho do arquivo completo
	Dim filePathComplete
		filePathComplete = load.getFilePathComplete("file")
	' Tamanho do arquivo
	Dim fileSize
		fileSize = load.getFileSize("file")
	' Tamanho do arquivo transferido
	Dim fileSizeTranslated
		fileSizeTranslated = load.getFileSizeTranslated("file")
	' Tipos de arquivo
	Dim contentType
		contentType = load.getContentType("file")
	' Número de elementos carregados
	Dim countElements
		countElements = load.Count
	' Nome do campo "name"
	Dim nameInput
		nameInput = load.getValue("name")
	' Caminho onde o arquivo será salvo
	i = len(fileName)
	ext = MID(fileName, i-3, 4)
		novo = "fotos_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
		Dim pathToFile2
			pathToFile2 = Server.mapPath("fotos") & "\" & novo
		Dim fileUploaded2
			fileUploaded2 = load.saveToFile ("file", pathToFile2)
	Set load = Nothing

	If fileUploaded2 = True Then
		on error resume next
		muda = ""
		cod = session("cod")
		if session("foto") = 1 then
			muda = "ds_foto1"
		end if
		if session("foto") = 2 then
			muda = "ds_foto2"
		end if
		if session("foto") = 3 then
			muda = "ds_foto3"
		end if
		if session("foto") = 4 then
			muda = "ds_foto4"
		end if
		if session("foto") = 5 then
			muda = "ds_foto5"
		end if

	str = "Update T01_Imovel set "
	str = str & ""& muda &" = '"& novo &"' "
	str = str & "WHERE t01_cd_imovel = "& cod &""
	set rs2 = db.execute(str)

	' Cria o objeto Persits.Jpeg para manipular a imagem
	Set Jpeg = Server.CreateObject("Persits.Jpeg")
	' Aponta o caminho da imagem para ser puxado por Jpeg.Open Path
	Path = "D:\webs\issad1\adm\fotos" & "\fotos_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
	Jpeg.Open Path
	' Especifica o tamanho da imagem
	Jpeg.Width = 100 'Jpeg.OriginalWidth / 2
	Jpeg.Height = 80 'Jpeg.OriginalHeight / 2
	' Comprime o arquivo da imagem reduzindo seu tamanho
	Jpeg.Quality = 70
	' Esse método é opcional, usado para melhorar o visual da imagem
	Jpeg.Sharpen 1, 150
	' Cria um thumbnail e o grava no caminho abaixo
	Jpeg.Save "D:\webs\issad1\adm\thumbs" & "\thumbs_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
	' Para enviar o thumbnail para o browser do cliente utilize o método SendBinary
	Response.Write jpeg.SendBinary
Set Jpeg = Nothing

	msg= "Upload do arquivo realizado com sucesso."
		response.redirect "foto1.asp?cod="&cod
else
	msg="Erro no envio do arquivo.\n Tente Novamente ou entre em contato com o webmaster."
	response.redirect "foto1.asp?cod="&cod
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao entendi a apre que nao conseguiu salvar o thumb, se ele foi gerado deve ter ficado na pasta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mário,

Me desculpe esta postando em um topico resolvido... ele está salvando a imagem normalmente na pasta, só não estou conseguindo salva o caminho do thumb no BD, pois a imagem principal está salvando normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce salva isso no mesmo trecho de codigo onde gera o thumb

 

use o mesmo nome daqui e armazene no db

 

Jpeg.Save "D:\webs\issad1\adm\thumbs" & "\thumbs_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

Fiz dessa forma para salvar a imagem original e o thumb, porém a imagem continua não sendo salva

 

' Caminho onde o arquivo será salvo
	i = len(fileName)
	ext = MID(fileName, i-3, 4)
		novo = "fotos_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
		Dim pathToFile2
			pathToFile2 = Server.mapPath("fotos") & "\" & novo
		Dim fileUploaded2
			fileUploaded2 = load.saveToFile ("file", pathToFile2)
	Set load = Nothing

	If fileUploaded2 = True Then
		on error resume next
		muda = ""
		cod = session("cod")
		if session("foto") = 1 then
			muda = "ds_foto1"
		end if
		if session("foto") = 2 then
			muda = "ds_foto2"
		end if
		if session("foto") = 3 then
			muda = "ds_foto3"
		end if
		if session("foto") = 4 then
			muda = "ds_foto4"
		end if
		if session("foto") = 5 then
			muda = "ds_foto5"
		end if

	str = "Update T01_Imovel set "
	str = str & ""& muda &" = '"& novo &"' "
	str = str & "WHERE t01_cd_imovel = "& cod &""
	set rs2 = db.execute(str)

	' Cria o objeto Persits.Jpeg para manipular a imagem
	Set Jpeg = Server.CreateObject("Persits.Jpeg")
	' Aponta o caminho da imagem para ser puxado por Jpeg.Open Path
	Path = "D:\webs\issad1\adm\fotos" & "\fotos_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
	Jpeg.Open Path
	' Especifica o tamanho da imagem
	Jpeg.Width = 100 'Jpeg.OriginalWidth / 2
	Jpeg.Height = 80 'Jpeg.OriginalHeight / 2
	' Comprime o arquivo da imagem reduzindo seu tamanho
	Jpeg.Quality = 70
	' Esse método é opcional, usado para melhorar o visual da imagem
	Jpeg.Sharpen 1, 150
	' Cria um thumbnail e o grava no caminho abaixo
	Jpeg.Save "D:\webs\issad1\adm\thumbs" & "\thumbs_"& year(date)& month(date)& day(date)& hour(time)& minute(time)& second(time)&ext
	' Para enviar o thumbnail para o browser do cliente utilize o método SendBinary
	Response.Write jpeg.SendBinary
Set Jpeg = Nothing

	If Jpeg.Save = True Then
		on error resume next
		thumb = ""
		codi = session("codi")
		if session("thumbs") = 1 then
			thumb = "ds_thumb1"
		end if
		if session("thumbs") = 2 then
			thumb = "ds_thumb2"
		end if
		if session("thumbs") = 3 then
			thumb = "ds_thumb3"
		end if
		if session("thumbs") = 4 then
			thumb = "ds_thumb4"
		end if
		if session("thumbs") = 5 then
			thumb = "ds_thumb5"
		end if
	end if

	str = "Update T01_Imovel set "
	str = str & ""& thumb &" = '"& novo &"' "
	str = str & "WHERE t01_cd_imovel = "& codi &""
	set rs2 = db.execute(str)

Compartilhar este post


Link para o post
Compartilhar em outros sites

o da thumb nao é novo, voce esta salvando a mesma coisa da imagem principal

Compartilhar este post


Link para o post
Compartilhar em outros sites

o da thumb nao é novo, voce esta salvando a mesma coisa da imagem principal

Humm... então no caso eu colocaria Jpeg.Save que é onde mostra o caminho da imagem no lugar de 'novo' correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao voce poe o caminho novo todo denovo

 

ou entao armazena em uma variavel e usa nos dois lugares

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou fazer uns testes aqui Mário, mais a principio mesmo assim não consegui... sei que estou fazendo algo errado, só não consigo ver onde, mesmo com os caminhos que você me passou...

 

Assim que conseguir posto aqui

Vlw cara brigadão e desculpa a persistencia, mais é que realmente fiquei perdido

 

Absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

tranquilo

 

precisando post

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.