Ir para conteúdo

POWERED BY:

Arquivado

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

RGXRJ

SaFileUp na página de inserção, alteração e deleção

Recommended Posts

Estou precisando a ajuda de vocês quanto com um sistema que fiz com a barra Developer Toolbox do Dream CS4. A página em questão cadastra, altera e deleta o registro. Nesse form, tenho dois file fields, um de imagem e um de miniaturas, o de imagem recebe tanto fotos, quanto vídeos, enquanto que o miniaturas utilizo somente pra exibir uma imagem de miniatura quando a matéria contiver vídeo e abrir dinamicamente com o Shadowbox. Sempre fiz esses uploads sem problemas no meu antigo servidor usando o próprio upload da barra Developer; agora, migrei para a Locaweb, que exige para uploads acima de 3mb a utilização do componente SafileUp. Pesquisei demais na internet e não encontrei nada que se adeque ao que já tenho e acrescentando o SaFileUp. A pergunta é: teria como alguém me dar uma luz quanto a esse componente dentro da programação que tenho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu nao entendi muito bem. o qeu voce quer é fazer upload atraves do SaFileUp?

 

Gilberto, na verdade, eu tenho esse sistema abaixo que cadastra, atualiza e deleta registros. Tenho nesse formulário dois campos de file fields, gostaria de saber como efetuar o upload dessas imagens e após gravar no banco de dados o caminho delas. já tentei e até agora não consegui.

 

Segue o código:

 

<%
response.buffer = true
server.scriptTimeout = 3600
%>

<!-- #include file="../../includes/wdg/WDG.asp" -->
<!--#include file="../../Connections/noticias.asp" -->
<!--#include file="../../includes/common/KT_common.asp" -->
<!--#include file="../../includes/nxt/KT_back.asp" -->
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="../login2.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
  If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
     	(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
	MM_grantAccess = true
  End If
End If
If Not MM_grantAccess Then
  MM_qsChar = "?"
  If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
  MM_referrer = Request.ServerVariables("URL")
  if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
  MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
  Response.Redirect(MM_authFailedURL)
End If
%>
<!--#include file="../../includes/tNG/tNG.inc.asp" -->
<!-- #INCLUDE file="fckeditor.asp" -->

<%
'Make a transaction dispatcher instance
Dim tNGs: Set tNGs = new tNG_dispatcher
tNGs.Init "../../"
%>
<%
' Start trigger
Dim formValidation: Set formValidation = new tNG_FormValidation
formValidation.Init
tNGs.prepareValidation formValidation
' End trigger
%>
<%
'start Trigger_FileDelete trigger
'remove this line if you want to edit the code by hand
Function Trigger_FileDelete (ByRef tNG)
  Dim deleteObj: Set deleteObj = new tNG_FileDelete
  deleteObj.Init tNG
  deleteObj.setFolder "../../fotos/"
  deleteObj.setDbFieldName "Imagem"
  Set Trigger_FileDelete = deleteObj.Execute()
End Function
'end Trigger_FileDelete trigger
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
rstbl_noticias_numRows = rstbl_noticias_numRows + Repeat1__numRows
%>
<%
' Make an insert transaction instance 
Dim ins_tbl_noticias: Set ins_tbl_noticias = new tNG_multipleInsert
ins_tbl_noticias.init MM_noticias_STRING
tNGs.addTransaction ins_tbl_noticias
' Register triggers
ins_tbl_noticias.registerTrigger Array("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Insert1")
ins_tbl_noticias.registerTrigger Array("BEFORE", "Trigger_Default_FormValidation", 10, formValidation)
ins_tbl_noticias.registerTrigger Array("END", "Trigger_Default_Redirect", 99, "../../includes/nxt/back.asp")
' Add columns
ins_tbl_noticias.setTable "tbl_noticias"
ins_tbl_noticias.addColumn "Titulo", "STRING_TYPE", "POST", "Titulo", ""
ins_tbl_noticias.addColumn "Noticia", "STRING_TYPE", "POST", "Noticia", ""
ins_tbl_noticias.addColumn "Fonte", "STRING_TYPE", "POST", "Fonte", ""
ins_tbl_noticias.addColumn "Imagem", "FILE_TYPE", "FILES", "Imagem", ""
ins_tbl_noticias.addColumn "Miniaturas", "FILE_TYPE", "FILES", "Miniaturas", ""
ins_tbl_noticias.addColumn "Data", "DATE_TYPE", "POST", "Data", ""
ins_tbl_noticias.addColumn "Hora", "DATE_TYPE", "POST", "Hora", ""
ins_tbl_noticias.setPrimaryKey "Id", "NUMERIC_TYPE", "", ""
%>
<%
' Make an update transaction instance
Dim upd_tbl_noticias: Set upd_tbl_noticias = new tNG_multipleUpdate
upd_tbl_noticias.init MM_noticias_STRING
tNGs.addTransaction upd_tbl_noticias
' Register triggers
upd_tbl_noticias.registerTrigger Array("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Update1")
upd_tbl_noticias.registerTrigger Array("BEFORE", "Trigger_Default_FormValidation", 10, formValidation)
upd_tbl_noticias.registerTrigger Array("END", "Trigger_Default_Redirect", 99, "../../includes/nxt/back.asp")
' Add columns
upd_tbl_noticias.setTable "tbl_noticias"
upd_tbl_noticias.addColumn "Titulo", "STRING_TYPE", "POST", "Titulo"
upd_tbl_noticias.addColumn "Noticia", "STRING_TYPE", "POST", "Noticia"
upd_tbl_noticias.addColumn "Fonte", "STRING_TYPE", "POST", "Fonte"
upd_tbl_noticias.addColumn "Imagem", "FILE_TYPE", "FILES", "Imagem"
upd_tbl_noticias.addColumn "Miniaturas", "FILE_TYPE", "FILES", "Miniaturas"
upd_tbl_noticias.addColumn "Data", "DATE_TYPE", "POST", "Data"
upd_tbl_noticias.addColumn "Hora", "DATE_TYPE", "POST", "Hora"
upd_tbl_noticias.setPrimaryKey "Id", "NUMERIC_TYPE", "GET", "Id"
%>
<%
' Make a delete transaction instance
Dim del_tbl_noticias: Set del_tbl_noticias = new tNG_multipleDelete
del_tbl_noticias.init MM_noticias_STRING
tNGs.addTransaction del_tbl_noticias
' Register triggers
del_tbl_noticias.registerTrigger Array("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Delete1")
del_tbl_noticias.registerTrigger Array("END", "Trigger_Default_Redirect", 99, "../../includes/nxt/back.asp")
del_tbl_noticias.registerTrigger Array("AFTER", "Trigger_FileDelete", 98)
' Add columns
del_tbl_noticias.setTable "tbl_noticias"
del_tbl_noticias.setPrimaryKey "Id", "NUMERIC_TYPE", "GET", "Id"
%>
<%
'Execute all the registered transactions
tNGs.executeTransactions
%>
<%
'Get the transaction recordset
Dim rstbl_noticias
Dim rstbl_noticias_numRows

Set rstbl_noticias = tNGs.getRecordset("tbl_noticias")
rstbl_noticias_numRows = 0
%>
<%
Dim rstbl_noticias_total
rstbl_noticias_total = KT_getNumberOfRows(rstbl_noticias)
%>
<html xmlns:wdg="[url="http://ns.adobe.com/addt"]http://ns.adobe.com/addt[/url]">
<head>
<title>Clipping Sos Card</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../../includes/skins/mxkollection3.css" rel="stylesheet" type="text/css" media="all" />
<script src="../../includes/common/js/base.js" type="text/javascript"></script>
<script src="../../includes/common/js/utility.js" type="text/javascript"></script>
<script src="../../includes/skins/style.js" type="text/javascript"></script>
<% Response.Write tNGs.displayValidationRules()%>
<script src="../../includes/nxt/scripts/form.js" type="text/javascript"></script>
<script src="../../includes/nxt/scripts/form.js.asp" type="text/javascript"></script>
<script src="../../SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<script type="text/javascript">
$NXT_FORM_SETTINGS = {
  duplicate_buttons: false,
  show_as_grid: true,
  merge_down_value: true
}
</script>
<script type="text/javascript" src="../../includes/common/js/sigslot_core.js"></script>
<script src="../../includes/common/js/base.js" type="text/javascript"></script>
<script src="../../includes/common/js/utility.js" type="text/javascript"></script>
<script type="text/javascript" src="../../includes/wdg/classes/MXWidgets.js"></script>
<script type="text/javascript" src="../../includes/wdg/classes/MXWidgets.js.asp"></script>
<script type="text/javascript" src="../../includes/wdg/classes/Calendar.js"></script>
<script type="text/javascript" src="../../includes/wdg/classes/SmartDate.js"></script>
<script type="text/javascript" src="../../includes/wdg/calendar/calendar_stripped.js"></script>
<script type="text/javascript" src="../../includes/wdg/calendar/calendar-setup_stripped.js"></script>
<script src="../../includes/resources/calendar.js"></script>
<link href="../../includes/skins/mxkollection3.css" rel="stylesheet" type="text/css" media="all" />
<link href="../../SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css">
</head>

<body>
<%
 Response.Write tNGs.getErrorMsg()
%>
<div class="KT_tng">
  <h1>
	<%
' Show IF Conditional region1 
  If Request.QueryString("Id") = "" Then
%>
  	<%=NXT_getResource("Insert_FH")%>
  	<%
' else Conditional region1
  Else %>
  	<%=NXT_getResource("Update_FH")%>
  	<%
  End If
' End Conditional region1
%>
	Notícia</h1>
  <div class="KT_tngform">
	<form method="post" action="upload.asp" enctype="multipart/form-data">
  	<% cnt1 = 0 %>
  	<% 
While ((Repeat1__numRows <> 0) AND (NOT rstbl_noticias.EOF)) 
%>
    	<% cnt1 = cnt1 + 1 %>
    	<% tNGs.SetCounter cnt1 %>
    	<%
' Show IF Conditional region1 
  If rstbl_noticias_total > 1 Then
%>
      	<h2><%=NXT_getResource("Record_FH")%> <%=cnt1%></h2>
      	<%
  End If
' End Conditional region1
%>
    	<table cellpadding="2" cellspacing="0" class="KT_tngtable">
      	<tr>
        	<td class="KT_th"><label for="Titulo_<%= cnt1 %>">Titulo:</label></td>
        	<td><input type="text" name="Titulo_<%= cnt1 %>" id="Titulo_<%= cnt1 %>" value="<%=(KT_escapeAttribute(rstbl_noticias.Fields.Item("Titulo").Value))%>" size="100" />
          	<%=(tNGs.displayFieldHint("Titulo"))%> <%=(tNGs.displayFieldError("tbl_noticias", "Titulo"))%></td>
      	</tr>
      	<tr>
        	<td class="KT_th"><label for="Noticia_<%= cnt1 %>">Noticia:</label></td>
        	<td><%
Dim sBasePath, svalordocampo
sBasePath = Request.ServerVariables("PATH_INFO")
sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ))
svalordocampo = rstbl_noticias("Noticia")
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = sBasePath
oFCKeditor.Value = svalordocampo
oFCKeditor.Create "Noticia"
%>
        	<%=(tNGs.displayFieldHint("Noticia"))%> <%=(tNGs.displayFieldError("tbl_noticias", "Noticia"))%></td>
      	</tr>
      	<tr>
        	<td class="KT_th"><label for="Fonte_<%= cnt1 %>">Fonte:</label></td>
        	<td><input type="text" name="Fonte_<%= cnt1 %>" id="Fonte_<%= cnt1 %>" value="<%=(KT_escapeAttribute(rstbl_noticias.Fields.Item("Fonte").Value))%>" size="32" maxlength="255" />
          	<%=(tNGs.displayFieldHint("Fonte"))%> <%=(tNGs.displayFieldError("tbl_noticias", "Fonte"))%></td>
      	</tr>
      	<tr>
        	<td class="KT_th"><label for="Imagem_<%= cnt1 %>">Imagem:</label></td>
        	<td><input type="file" name="Imagem_<%= cnt1 %>" id="Imagem_<%= cnt1 %>" size="32" />          	<%=(tNGs.displayFieldError("tbl_noticias", "Imagem"))%></td>
      	</tr>
      	<tr>
        	<td class="KT_th"><label for="Miniaturas_<%= cnt1 %>">Miniaturas:</label></td>
        	<td><input type="file" name="Miniaturas_<%= cnt1 %>" id="Miniaturas_<%= cnt1 %>" size="32" />
          	<%=(tNGs.displayFieldError("tbl_noticias", "Miniaturas"))%></td>
      	</tr>
      	<tr>
        	<td class="KT_th"><label for="Data_<%= cnt1 %>">Data:</label></td>
        	<td><input name="Data_<%= cnt1 %>" id="Data_<%= cnt1 %>" value="<%=(KT_formatDate(rstbl_noticias.Fields.Item("Data").Value))%>" size="10" maxlength="22" wdg:mondayfirst="false" wdg:subtype="Calendar" wdg:mask="<%= KT_screen_date_format %>" wdg:type="widget" wdg:singleclick="false" wdg:restricttomask="no" wdg:readonly="true" />
          	<%=(tNGs.displayFieldHint("Data"))%> <%=(tNGs.displayFieldError("tbl_noticias", "Data"))%></td>
      	</tr>
      	<tr>
        	<td class="KT_th"><label for="Hora_<%= cnt1 %>">Hora:</label></td>
        	<td><span id="sprytextfield1">
          	<input type="text" name="Hora_<%= cnt1 %>" id="Hora_<%= cnt1 %>" value="<%=(KT_formatDate(rstbl_noticias.Fields.Item("Hora").Value))%>" size="10" maxlength="22" />
          	<span class="textfieldInvalidFormatMsg">Invalid format.</span></span><%=(tNGs.displayFieldHint("Hora"))%> <%=(tNGs.displayFieldError("tbl_noticias", "Hora"))%></td>
      	</tr>
    	</table>
    	<input type="hidden" name="kt_pk_tbl_noticias_<%=cnt1%>" class="id_field" value="<%=(KT_escapeAttribute(rstbl_noticias.Fields.Item("kt_pk_tbl_noticias").Value))%>" />
    	<%
	Repeat1__index=Repeat1__index+1
	Repeat1__numRows=Repeat1__numRows-1
	rstbl_noticias.MoveNext()
  Wend
  %>
  	<div class="KT_bottombuttons">
    	<div>
      	<%
  ' Show IF Conditional region1 
	If Request.QueryString("Id") = "" Then
  %>
        	<input type="submit" name="KT_Insert1" id="KT_Insert1" value="<%=NXT_getResource("Insert_FB")%>" />
        	<%
  ' else Conditional region1
	Else %>
        	<input type="submit" name="KT_Update1" value="<%=NXT_getResource("Update_FB")%>" />
        	<input type="submit" name="KT_Delete1" value="<%=NXT_getResource("Delete_FB")%>" onClick="return confirm('<%=NXT_getResource("Are you sure?")%>');" />
        	<%
 	End If
   ' End Conditional region1
   %>
      	<input type="button" name="KT_Cancel1" value="<%=NXT_getResource("Cancel_FB")%>" onClick="return UNI_navigateCancel(event, '../../includes/nxt/back.asp')" />
    	</div>
  	</div>
	</form>
  </div>
  <br class="clearfixplain" />
</div>
<p> </p>
<script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "custom", {isRequired:false, validateOn:["change"], pattern:"00:00:00", useCharacterMasking:true});
//-->
</script>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem exemplos de upload no laboratório de script, com componentes e até sem componente que iria resolver seu, também

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem exemplos de upload no laboratório de script, com componentes e até sem componente que iria resolver seu, também

 

Como ficaria nesse meu código com o SaFileUp...vi vários tópicos, mas não entendi como implementar nesse meu form. Tem como dar uma luz nisso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala chefe, vou postar 4 codigos, nesses 4 da pra voce fazer tudo que você esta querendo.

1º O arquivo de conexao com banco de dados

2º O formulario com dois input type="file".

3º O arquivo que faz upload dos dois arquivos e salva no banco.

4º O script que deleta da base e o arquivo da pasta.

 

----------------------------------------------------------------------

Abaixo o arquivo de conexão com o banco de dados, no meu caso é um banco Access

config.asp

<%
dim con, caminho

	caminho = "d:\sites\new-extranet-mb\dados\dados.mdb"
	sub connect
		set con = server.CreateObject("ADODB.Connection")
		
		con.connectionstring="driver={Microsoft Access Driver (*.mdb)};Dbq="&caminho
		con.open
end sub
	
sub disconnect	
	con.close
	set con = nothing
end sub
%>
------------------------------------------------------------------------

Abaixo o html com com o formulario.

form.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!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=iso-8859-1" />
<title>Formulario com 2 input type="file"</title>
</head>

<body>
<a  href="email.asp">Envia</a>
<form method="post" action="email.asp" enctype="multipart/form-data">
  <table width="515" border="0">
    <tr>
      <td>Arquivo</td>
      <td><input name="file1" type="file" id="file1" /></td>
    </tr>
    <tr>
      <td>Arquivo</td>
      <td><input name="file2" type="file" id="file2" /></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
</form>
</body>
</html>
---------------------------------------------------------------------------

Agora o script que faz upload e salva no banco os dois arquivos.

upload.asp

<!--#include file="config.asp" -->

<%
		'Esse script é personalizavel, pode colocar quantos arquivos quiser, lembrando que alguns servidores de email limita o tamanho do anxo.	
		'Instancia o componente
		SET SaFileUp = Server.CreateObject("SoftArtisans.FileUp") 
		server.ScriptTimeout=99999 ' aumenta o tempo para enviar aquivos maiores
 
			'Configura o caminho onde arquivo será salvo
			SaFileUp.Path = Server.MapPath("../../v2/fotos_anexo/")
             'Para Revenda substitua o caminho físico para E:\vhosts\SEU_DOMINIO_COMPLETO\httpdocs\
 
			'Você pode usar também o caminho relativo se preferir
			'SaFileUp.Path = Server.MapPath("./upload/")
 
			'Caso o usuário não indique um arquivo para upload, informa erro.
			If SaFileUp.IsEmpty Then
					response.write "<center>Por favor, indique um arquivo para upload.</center><br>"
			Else
				'Salva o primeiro arquivo no servidor
				SaFileUp.Form("file1").Save
				'Sava o segundo arquivo no servidor
				SaFileUp.Form("file2").Save
call connect
	dim rsArquivo1, rsArquivo2
		
	'Recupera o nome do primeiro arquivo
	nome_arq = Right(SaFileUp.Form("file1"),Len(SaFileUp.Form("file1"))-InstrRev(SaFileUp.Form("file1"),"\"))
	'Recupera o nome do segundo arquivo
	nome_arq_1 = Right(SaFileUp.Form("file2"),Len(SaFileUp.Form("file2"))-InstrRev(SaFileUp.Form("file2"),"\"))
	
	set rsArquivo1 = con.execute("INSERT INTO FOTOS (NOME_FOTO)VALUES('"&nome_arq&"')")
	set rsArquivo2 = con.execute("INSERT INTO FOTOS (NOME_FOTO)VALUES('"&nome_arq_1&"')")
	
End if
 
Set SaFileUp = Nothing 
response.Write("<script>Alert('Fotos Salva com sucesso!';loccaiton='form.asp')</script>")
%>
----------------------------------------------------------------------------------------

Agora vamos criar o arquivo que deleta a imagem do banco de dados e tambem da pasta. Logicamente voce que tem que criar a pagina que mostra as fotos ou link para deletar as mesmas. Não vou mostrar como criar... acho que essa parte voce ja passou.

deletar.asp

<!--aqui fazemos a inclusao do arquivo de conexao com o banco de dados-->
<!--#include file="config.asp" -->
<%
'conecta ao banco de dados
call connect
'Declara as variaves
dim id, rsDeleta
'Recupera o Codigo da foto que foi clicada
id = request.QueryString("id")
'deleta a foto do banco de dados
set rsDeleta = con.execute("DELETE FOTOS WHERE CodFoto="&id)

'declara o objeto FSO para deletar o arquivo da pasta
Set fso = CreateObject("Scripting.FileSystemObject")
'recupera o arquivo correspondente na pasta
Set fileObject = fso.GetFile(Server.MapPath ("fotos/"&rsDeleta))
'Deleta o arquivo
fileObject.Delete
'Limpa o objeto FSO
Set fileObject = Nothing
'desconecta do banco
call disconnect
'msg de alerta do javascript mostrando o nome do arquivo que foi deletado
response.write ("<script>alert('Arquivo "&rsDeleta&" excluido com sucesso!');location='viewfoto.asp'</script>")
%>

Bom, acho que é isso ae.. qualquer duvida posta ai mano!

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala chefe, vou postar 4 codigos, nesses 4 da pra voce fazer tudo que você esta querendo.

1º O arquivo de conexao com banco de dados

2º O formulario com dois input type="file".

3º O arquivo que faz upload dos dois arquivos e salva no banco.

4º O script que deleta da base e o arquivo da pasta.

 

----------------------------------------------------------------------

Abaixo o arquivo de conexão com o banco de dados, no meu caso é um banco Access

config.asp

<%
dim con, caminho

	caminho = "d:\sites\new-extranet-mb\dados\dados.mdb"
	sub connect
		set con = server.CreateObject("ADODB.Connection")
		
		con.connectionstring="driver={Microsoft Access Driver (*.mdb)};Dbq="&caminho
		con.open
end sub
	
sub disconnect	
	con.close
	set con = nothing
end sub
%>
------------------------------------------------------------------------

Abaixo o html com com o formulario.

form.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!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=iso-8859-1" />
<title>Formulario com 2 input type="file"</title>
</head>

<body>
<a  href="email.asp">Envia</a>
<form method="post" action="email.asp" enctype="multipart/form-data">
  <table width="515" border="0">
    <tr>
      <td>Arquivo</td>
      <td><input name="file1" type="file" id="file1" /></td>
    </tr>
    <tr>
      <td>Arquivo</td>
      <td><input name="file2" type="file" id="file2" /></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
</form>
</body>
</html>
---------------------------------------------------------------------------

Agora o script que faz upload e salva no banco os dois arquivos.

upload.asp

<!--#include file="config.asp" -->

<%
		'Esse script é personalizavel, pode colocar quantos arquivos quiser, lembrando que alguns servidores de email limita o tamanho do anxo.	
		'Instancia o componente
		SET SaFileUp = Server.CreateObject("SoftArtisans.FileUp") 
		server.ScriptTimeout=99999 ' aumenta o tempo para enviar aquivos maiores

			'Configura o caminho onde arquivo será salvo
			SaFileUp.Path = Server.MapPath("../../v2/fotos_anexo/")
         	'Para Revenda substitua o caminho físico para E:\vhosts\SEU_DOMINIO_COMPLETO\httpdocs\

			'Você pode usar também o caminho relativo se preferir
			'SaFileUp.Path = Server.MapPath("./upload/")

			'Caso o usuário não indique um arquivo para upload, informa erro.
			If SaFileUp.IsEmpty Then
					response.write "<center>Por favor, indique um arquivo para upload.</center>
"
			Else
				'Salva o primeiro arquivo no servidor
				SaFileUp.Form("file1").Save
				'Sava o segundo arquivo no servidor
				SaFileUp.Form("file2").Save
call connect
	dim rsArquivo1, rsArquivo2
		
	'Recupera o nome do primeiro arquivo
	nome_arq = Right(SaFileUp.Form("file1"),Len(SaFileUp.Form("file1"))-InstrRev(SaFileUp.Form("file1"),"\"))
	'Recupera o nome do segundo arquivo
	nome_arq_1 = Right(SaFileUp.Form("file2"),Len(SaFileUp.Form("file2"))-InstrRev(SaFileUp.Form("file2"),"\"))
	
	set rsArquivo1 = con.execute("INSERT INTO FOTOS (NOME_FOTO)VALUES('"&nome_arq&"')")
	set rsArquivo2 = con.execute("INSERT INTO FOTOS (NOME_FOTO)VALUES('"&nome_arq_1&"')")
	
End if

Set SaFileUp = Nothing 
response.Write("<script>Alert('Fotos Salva com sucesso!';loccaiton='form.asp')</script>")
%>
----------------------------------------------------------------------------------------

Agora vamos criar o arquivo que deleta a imagem do banco de dados e tambem da pasta. Logicamente voce que tem que criar a pagina que mostra as fotos ou link para deletar as mesmas. Não vou mostrar como criar... acho que essa parte voce ja passou.

deletar.asp

<!--aqui fazemos a inclusao do arquivo de conexao com o banco de dados-->
<!--#include file="config.asp" -->
<%
'conecta ao banco de dados
call connect
'Declara as variaves
dim id, rsDeleta
'Recupera o Codigo da foto que foi clicada
id = request.QueryString("id")
'deleta a foto do banco de dados
set rsDeleta = con.execute("DELETE FOTOS WHERE CodFoto="&id)

'declara o objeto FSO para deletar o arquivo da pasta
Set fso = CreateObject("Scripting.FileSystemObject")
'recupera o arquivo correspondente na pasta
Set fileObject = fso.GetFile(Server.MapPath ("fotos/"&rsDeleta))
'Deleta o arquivo
fileObject.Delete
'Limpa o objeto FSO
Set fileObject = Nothing
'desconecta do banco
call disconnect
'msg de alerta do javascript mostrando o nome do arquivo que foi deletado
response.write ("<script>alert('Arquivo "&rsDeleta&" excluido com sucesso!');location='viewfoto.asp'</script>")
%>

Bom, acho que é isso ae.. qualquer duvida posta ai mano!

 

Gilberto, na verdade eu já tinha entendido o código e agradeço a sua ajuda, mas na verdade eu já tenho um sistema fazia o cadastro, enviava as fotos ou vídeos perfeitamente no antigo servidor. Atualmente troquei pra Locaweb, que me exige para uploads maiores de 3mb a utilização do componente SaFileUp. Não gostaria de mudar o código inteiro do que já tenho. Se não for muito incômodo, teria como me mostrar como ficaria? Segue abaixo o código da página que faz o upload atualmente pra sua análise:

 

<%
Class tNG_FileUpload
 Public tNG ' object
 Public fieldName
 Public formFieldName
 Public dbFieldName
 Public folder
 Public maxSize
 Public allowedExtensions
 Public rename
 Public renameRule
 Public uploadedFileName
 Public dynamicFolder
 Public errObj

 Private Sub Class_Initialize()
  Set this = Me
 End Sub
 
 Private Sub Class_Terminate()
 End Sub

 Public Sub Init (ByRef tNG__param)
  Set tNG = tNG__param
  formFieldName = ""
  dbFieldName = ""
  folder = ""
  maxSize = 0
  allowedExtensions = array()
  rename = "none"
  renameRule = ""
  uploadedFileName = ""
   dynamicFolder  = ""
  Set errObj = nothing
 End Sub

 '===========================================
 ' Inheritance
 '===========================================
 Public this
 
 Public Sub SetContextObject(ByRef objContext)
  Set this = objContext
 End Sub
 '===========================================
 ' End Inheritance
 '===========================================
 
 Public Sub setFormFieldName (formFieldName__param)
  formFieldName = formFieldName__param
 End Sub 

 Public Sub setDbFieldName (dbFieldName__param)
  dbFieldName = dbFieldName__param
 End Sub 

 Public Sub setFolder (folder__param)
  folder = folder__param
 End Sub 

 Public Sub setMaxSize (maxSize__param)
  maxSize = maxSize__param
 End Sub 
 
 Public Sub setAllowedExtensions (allowedExtensions__param)
  arrExtensions = split(allowedExtensions__param, ",")
  Dim i
  For i=0 to ubound(arrExtensions)
   arrExtensions(i) = trim(arrExtensions(i))
  Next
  allowedExtensions  = arrExtensions
 End Sub

 Public Sub setRename (rename__param)
  rename = rename__param
 End Sub 

 Public Sub setRenameRule (renameRule__param)
  renameRule = renameRule__param
 End Sub 

 
 Public Sub Rollback()
  Dim fso: Set fso = Server.CreateObject("Scripting.FileSystemObject")
  On Error Resume Next
  fso.DeleteFile dynamicFolder & uploadedFileName, True
  On Error GoTo 0
  Set fso = Nothing
 End Sub

 
 Public Sub deleteThumbnails(folder, oldName)
 End Sub

 Public Function Execute()
      	If tNG.getTransactionType() = "_import" Then
        	Set tNG.uploadObj = this
      	End If

      	Dim ret: Set ret = nothing
      	If dbFieldName <> "" Then
        	oldFileName = tNG.getSavedValue(dbFieldName)
        	saveFileName  = tNG.getColumnValue(dbFieldName)
        	If tNG.getColumnType(dbFieldName) <> "FILE_TYPE" Then
          	Set ret = new tNG_error
          	ret.Init "FILE_UPLOAD_WRONG_COLTYPE", array(), array(dbFieldName)
          	ret.addFieldError dbFieldName, "FILE_UPLOAD_WRONG_COLTYPE_D", array(dbFieldName)
          	Set errObj = ret
          	Set Execute = ret
          	Exit Function
        	End If
      	Else
        	oldFileName = KT_DynamicData(renameRule, tNG, null, true, null, null)
        	If KT_isSet(tNG.multipleIdx) Then
          	saveFileName = Request.Form(formFieldName & "_" & tNG.multipleIdx)	
        	Else
          	saveFileName = Request.Form(formFieldName)
        	End If
      	End If
      	
      	dynamicFolder = KT_DynamicData(folder, tNG, null, false, null, null)
      	dynamicFolder = KT_makeIncludedPath(dynamicFolder)
  
      	autoRename = false 
      	Select case LCase(rename)
        	case "auto"
          	autoRename = true
        	case "none"
        	case "custom"
          	Set arrArgs = Server.CreateObject("Scripting.Dictionary")
          	Set path_info = KT_pathinfo(saveFileName)
          	arrArgs("KT_name") = path_info("filename")
          	arrArgs("KT_ext") = path_info("extension")
          	saveFileName = KT_DynamicData(renameRule, tNG, null, false, arrArgs, null)
        	case else
          	Response.write "INTERNAL ERROR: Unknown upload rename method."
          	Response.End()
        	End Select

        	If Not tNG_isFileInsideBaseFolder(folder, saveFileName) Then
          	Set ret = new tNG_error
          	baseFileName = KT_dirname(KT_normalizeAbsoluteFilePath(KT_server_MapPath(dynamicFolder & saveFileName)))
          	ret.Init "FOLDER_DEL_SECURITY_ERROR", array(), array(baseFileName, tNG_getBaseFolder(folder))
          	Set errObj = ret
          	Set Execute = ret
          	Exit Function
        	End If

  ' Upload File
  Set fileUpload = new KT_fileUpload
  If KT_isSet(tNG.multipleIdx) Then
   fileUpload.setFileInfo formFieldName & "_" & tNG.multipleIdx
  Else
   fileUpload.setFileInfo formFieldName
  End If
  fileUpload.setFolder KT_Server_MapPath(dynamicFolder)
  fileUpload.setRequired false
  fileUpload.setAllowedExtensions allowedExtensions
  fileUpload.setAutoRename autoRename
  fileUpload.setMaxSize maxSize
  uploadedFileName = fileUpload.uploadFile(saveFileName, oldFileName)

  updateDB = uploadedFileName
  If fileUpload.hasError() Then
   arrError = fileUpload.getError()
   Set errObj  = new tNG_error
   errObj.Init "FILE_UPLOAD_ERROR", array(arrError(0)), array(arrError(1))
   If dbFieldName <> "" Then
    errObj.addFieldError dbFieldName, "%s", array(arrError(0))
   End If
   Set ret = errObj
  Else
   dynamicFolder = KT_Server_MapPath(dynamicFolder) & "\"
   If uploadedFileName = "" Then 
    Set arrArgs = Server.CreateObject("Scripting.Dictionary")
    If rename = "custom" Then
     Set path_info = KT_pathinfo(oldFileName)
     arrArgs("KT_name") = path_info("filename")
    End If
    tmpFileName = KT_DynamicData(renameRule, tNG, null, false, arrArgs, null)
    If tmpFileName <> "" and oldFileName <> "" and tmpFileName <> oldFileName Then
     Set fso = Server.CreateObject("Scripting.FileSystemObject")
     If fso.FileExists(dynamicFolder & oldFileName) Then
      On Error Resume Next
      fso.MoveFile dynamicFolder & oldFileName, dynamicFolder & tmpFileName 
      uploadedFileName = tmpFileName
      updateDB = uploadedFileName
      If err.Number <> 0 Then
       Set ret = new tNG_error
       ret.Init "FILE_UPLOAD_RENAME", array(), array(dynamicFolder & oldFileName, dynamicFolder & tmpFileName )
      End If
      On Error GoTo 0

     End If
    End If 
   End If

   If Not KT_isSet(ret) Then
    If tNG.getTransactionType = "_insert"  Or tNG.getTransactionType = "_multipleInsert" Then
     tNG.registerTrigger Array("ERROR", "Trigger_Default_RollBack", 1, Me)
    End If
    this.deleteThumbnails dynamicFolder & "thumbnails\", oldFileName 
    If uploadedFileName <> "" Then
     this.deleteThumbnails dynamicFolder & "thumbnails\", uploadedFileName 
    End If
    If dbFieldName <> "" And uploadedFileName <> "" Then
     Set ret = tNG.afterUpdateField(dbFieldName, updateDB)
    End If
   End If
   If Not KT_isSet(ret) and dbFieldName <> "" Then
    tNG.setRawColumnValue dbFieldName, updateDB
   End If
  End If
  Set errObj = ret
  Set Execute = ret
 End Function
 
End Class 
 
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

RGXRJ, cara se a locaweb "exige" com você mesmo disse, você vai ter que mudar o seu codigo. Eu mesmo tive que mudar varios formularios eu tinha feito com outro objeto e funcionava perfeitamente localmente mas quando coloquei na locaweb tive que mudar para SaFileUp. Tive que reescrever quase tudo.

 

 

Abraz

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.