Foros del Web » Programando para Internet » ASP Clásico »

freeaspupload y rescatar un valor del formulario

Estas en el tema de freeaspupload y rescatar un valor del formulario en el foro de ASP Clásico en Foros del Web. ¡Hola a todos! Leyendo la documentacion de este script , veo que puedo rescatar los valores del formulario usando: Código: strUserName = Upload.Form("UserName") lo he ...
  #1 (permalink)  
Antiguo 19/11/2009, 17:41
 
Fecha de Ingreso: junio-2002
Mensajes: 321
Antigüedad: 22 años, 10 meses
Puntos: 3
freeaspupload y rescatar un valor del formulario

¡Hola a todos!

Leyendo la documentacion de este script, veo que puedo rescatar los valores del formulario usando:
Código:
strUserName = Upload.Form("UserName")
lo he añadido en mi codigo, poniendo donde "UserName" el nombre que le puse al campo de envio de archivos.

Me sale el siguiente error: Se requiere un objeto: ''

Llevo un rato y no consigo darle solucion
¿que puede ser?.
  #2 (permalink)  
Antiguo 19/11/2009, 19:01
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: freeaspupload y rescatar un valor del formulario

Ya lo instanciaste?

Este este otro hilo viene un código de ese objeto, revísalo a ver si te falta algo

Saludos
  #3 (permalink)  
Antiguo 19/11/2009, 19:14
 
Fecha de Ingreso: junio-2002
Mensajes: 321
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: freeaspupload y rescatar un valor del formulario

Para mi desgracia, he revisado todos los codigos que hay en el foro y no se cual es el problema. Adjunto aqui el codigo que estoy usando. Se que aqui no sale el include al FREEASPUPLOAD, pero en una parte del codigo ya esta "incluyendose".

Código:
<%
Response.Expires = -1
Server.ScriptTimeout = 600

Dim uploadsDirVar
uploadsDirVar = Server.MapPath("upload\")

Function SaveFiles
    Dim Upload, ks, resumen

    Set Upload = New FreeASPUpload
    Upload.Save(uploadsDirVar)
	If Err.Number<>0 then Exit function
	ks = Upload.UploadedFiles.keys
	if (UBound(ks) = -1) then resumen = "No es un nombre valido en el sistema."
	SaveFiles = resumen
end function





if Request.ServerVariables("REQUEST_METHOD") = "POST" then
		cpoImage = Upload.Form("cpo_Image")

        txt_Validado=True
        If cpoImage="" then
            cpo_Image="Este campo es obligatorio."
            txt_Validado=False
		Else
			Set fs=Server.CreateObject("Scripting.FileSystemObject")

			Dim boolExisteExtension
			boolExisteExtension = false
			
			extensions = Array ("jpg", "jpeg", "jpe") 	
			
			for i = 0 to uBound(extensions)
			  if fs.GetExtensionName(cpoImage) = extensions (i) then
				 boolExisteExtension = true
				 exit for
			  end if
			next
			
			If boolExisteExtension Then
				If (fs.FileExists(Request.ServerVariables("APPL_PHYSICAL_PATH") + "upload\" + cpoImage))=TRUE Then
					cpo_Image="El archivo ya se encuentra en nuestro servidor."
					txt_Validado=False
				Else



	
	response.write SaveFiles()
		cpo_Image="El archivo ya se encuentra en nuestro servidor."

			







				End If
			Else
				   cpo_Image="El archivo no es compatible."
				   txt_Validado=False
			End If

			set fs=nothing
        End If
        If txt_Validado=True then
            Response.Write("aqui va la accion a tomar en cuanto se ha terminado de meter todos los campos")
        End if
    End if
%>
He hecho algunos añadidos al codigo (como podreis ver), entre ellos: comprobar si el archivo existe en la carpeta upload, y tambien la extension del archivo (en este ultimo caso hice una pregunta tb a este foro al respecto).

Claramente ahora dejan de fallar porque al usarse "multipart/form...." los request no funcionan.

Vi un ejemplo en otro foro (precisamente tuyo) que decia:

Cita:
Iniciado por Myakire
UploadedFiles.keys regresa una colección, debes de recorrerla con algo como esto:

Código:
for each fileKey in Upload.UploadedFiles.keys
	nomArchivo = Upload.UploadedFiles(fileKey).FileName
next
entendi que era para lo mismo que quiero hacer, y lo puse, pero no funcionaba.
  #4 (permalink)  
Antiguo 19/11/2009, 19:17
 
Fecha de Ingreso: junio-2002
Mensajes: 321
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: freeaspupload y rescatar un valor del formulario

Cita:
Iniciado por Nateskin Ver Mensaje
Para mi desgracia, he revisado todos los codigos que hay en el foro y no se cual es el problema. Adjunto aqui el codigo que estoy usando. Se que aqui no sale el include al FREEASPUPLOAD, pero en una parte del codigo ya esta "incluyendose".

Código:
<%
Response.Expires = -1
Server.ScriptTimeout = 600

Dim uploadsDirVar
uploadsDirVar = Server.MapPath("upload\")

Function SaveFiles
    Dim Upload, ks, resumen

    Set Upload = New FreeASPUpload
    Upload.Save(uploadsDirVar)
	If Err.Number<>0 then Exit function
	ks = Upload.UploadedFiles.keys
	if (UBound(ks) = -1) then resumen = "No es un nombre valido en el sistema."
	SaveFiles = resumen
end function





if Request.ServerVariables("REQUEST_METHOD") = "POST" then
		cpoImage = Upload.Form("cpo_Image")

        txt_Validado=True
        If cpoImage="" then
            cpo_Image="Este campo es obligatorio."
            txt_Validado=False
		Else
			Set fs=Server.CreateObject("Scripting.FileSystemObject")

			Dim boolExisteExtension
			boolExisteExtension = false
			
			extensions = Array ("jpg", "jpeg", "jpe") 	
			
			for i = 0 to uBound(extensions)
			  if fs.GetExtensionName(cpoImage) = extensions (i) then
				 boolExisteExtension = true
				 exit for
			  end if
			next
			
			If boolExisteExtension Then
				If (fs.FileExists(Request.ServerVariables("APPL_PHYSICAL_PATH") + "upload\" + cpoImage))=TRUE Then
					cpo_Image="El archivo ya se encuentra en nuestro servidor."
					txt_Validado=False
				Else



	
	response.write SaveFiles()
		cpo_Image="El archivo ya se encuentra en nuestro servidor."

			







				End If
			Else
				   cpo_Image="El archivo no es compatible."
				   txt_Validado=False
			End If

			set fs=nothing
        End If
        If txt_Validado=True then
            Response.Write("aqui va la accion a tomar en cuanto se ha terminado de meter todos los campos")
        End if
    End if
%>
He hecho algunos añadidos al codigo (como podreis ver), entre ellos: comprobar si el archivo existe en la carpeta upload, y tambien la extension del archivo (en este ultimo caso hice una pregunta tb a este foro al respecto).

Claramente ahora dejan de fallar porque al usarse "multipart/form...." los request no funcionan.

Vi un ejemplo en otro foro (precisamente tuyo) que decia:



entendi que era para lo mismo que quiero hacer, y lo puse, pero no funcionaba.
PD: "cpo_image" se llama el campo de mi formulario que quiero hacer el susodicho "request"
  #5 (permalink)  
Antiguo 26/11/2009, 09:04
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: freeaspupload y rescatar un valor del formulario

Cita:
Iniciado por Nateskin

HAce poco puse un post sobre recojer los valores de los campos con freeaspupload.

como bien sabes, se recojen con este codigo.
Código:
for each fileKey in Upload.UploadedFiles.keys
	nomArchivo = Upload.UploadedFiles(fileKey).FileName
next
yo tengo dos campos de upload. el caso es que quiero poner en la base de datos estos dos campos por separado y no me añada uno.

he probado así

Código:
nomArchivo1 = Upload.UploadedFiles(fileKey).nomArchivo1
como
Código:
nomArchivo1 = Upload.UploadedFiles(nomArchivo1).FileName
pero en ninguno de los dos puedo sacar el nombre del archivo de la imagen que quiero subir.

¿hay alguna manera facil?

y nuevamente, disculpame las molestias.
Nada mejor que leer la documentación del objeto en cuestión, extrayendo esta parte:

Cita:
How do I grab the filename of the uploaded file?

You get it from the Upload.UploadedFiles(fileKey).FileName command, where fileKey is the name of the control in the form. In the case of the uploadTester.asp script, the fileKey for the first file is attach1. See the function SaveFiles in uploadTester.asp for an example of the use of the FileName property.
Vemos que incluso hay un ejemplo al que nos invitan a revisar. Si corres dicho ejemplo verás que lo que ocupas lo hace el código que ya tienes:

Cita:
SaveFiles = "<B>Files uploaded:</B> "
for each fileKey in Upload.UploadedFiles.keys
SaveFiles = SaveFiles & Upload.UploadedFiles(fileKey).FileName & " (" & Upload.UploadedFiles(fileKey).Length & "B) "
next
Es decir, solo debes de colocar dentro de ese ciclo lo que tengas que colocar para que cada archivo se grabe en un campo diferente, se me ocurre manejar los índices de los campos con un contador dentro del for.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:52.