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

xelUpload: error en llamada a procedimiento

Estas en el tema de xelUpload: error en llamada a procedimiento en el foro de ASP Clásico en Foros del Web. Hola amigos, retomo un viejo tema que parece bastante común pero no he visto soluciones, ya que buscando en google, se ven muchos planteamientos del ...
  #1 (permalink)  
Antiguo 26/05/2008, 04:46
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 4 meses
Puntos: 9
xelUpload: error en llamada a procedimiento

Hola amigos, retomo un viejo tema que parece bastante común pero no he visto soluciones, ya que buscando en google, se ven muchos planteamientos del mismo problema pero pocas soluciones.

En este post se habla de ello, pero la solución quedó en suspenso...

El caso es que al hacer fichero.GuardarComo nombre, ruta_server, me da este error:

Código:
Error de Microsoft VBScript en tiempo de ejecución error '800a0005'

Argumento o llamada a procedimiento no válidos

/xelupload.asp, linea 194

[es esta linea de codigo: oFich.Write Chr(AscB(MidB(Datos, i, 1)))] 
Esto ocurre al hacer upload, cosa extraña: si recargo la página hace el upload correctamente...

Mis versiones de script son estas, que en principio cumplen con los requisitos de xelUpload:

Código:
ScriptEngine: VBScript

ScriptEngineMajorVersion: 5

ScriptEngineMinorVersion: 7

ScriptEngineBuildVersion: 5730
Lo más curioso es que en otras ocasiones ya he usado xelUpload en la misma máquina sin ningún problema

Espero que podáis ayudarme

Gracias
  #2 (permalink)  
Antiguo 26/05/2008, 10:26
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: xelUpload: error en llamada a procedimiento

habria que verificar si no llegan NULL o vacios, parece que todo indica por ese lado


podrias poner parte del codigo anterior a esa linea
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 27/05/2008, 04:36
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 4 meses
Puntos: 9
Respuesta: xelUpload: error en llamada a procedimiento

¿te refieres al código de la clase xelUpload? Ok, ahí te lo pongo...

Por mi parte la llamada se realiza con:

Código:
For each fich in upld.Ficheros.Items
     fich.GuardarComo nombre_fichero, ruta_server
Next
Ninguno de ellos es vacío y la ruta_server está mapeada

Dentro de xelUpload (que es una clase descargada de internet), el código de esa sub es el siguiente:

Código:
Public Sub GuardarComo(nombrefichero, ruta)
Dim oFSO, oFich, i

if ruta = "" or nombrefichero = "" then Exit Sub
if Mid(ruta, Len(ruta)) <> "\" then		'"	
	'añado la ultima barra a la ruta
	ruta = ruta & "\" 						'"
end if

set oFSO = Server.CreateObject("Scripting.FileSystemObject")
if not oFSO.FolderExists(ruta) then Exit Sub
set oFich = oFSO.CreateTextFile(ruta & nombrefichero, true)

for i = 1 to LenB(Datos)
	   oFich.Write Chr(AscB(MidB(Datos, i, 1)))
next 	

oFich.Close
set oFSO = nothing


End Sub
He probado a proteger el oFich.Write Chr(AscB(MidB(Datos, i, 1))) con un If Datos & "" <> "" aunque sigue dando el mismo error, en lugar de subir solo un fichero erróneo de 1kb sube un fichero erróneo de 401 kb, o sea, que por ahí puede andar la cosa, pero no se me ocurre como solucionarlo y por qué antes no me ocurría

Gracias, saludos
  #4 (permalink)  
Antiguo 27/05/2008, 11:36
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: xelUpload: error en llamada a procedimiento

, y ya que andamos con eso de la ruta..... como te escribe la ruta

Cita:
response.write ruta_server
en este caso para saber si le falta el "\" al final, por que en lo relacionado a direccionamiento virtual

si solo le estas mandando "server.mappath("./")" y anexas un directorio extra, "server.mappath("./extra")", le haria falta la barra invertida

carpeta = server.mappath("./") & "extra\"

solo seria verificacion de la ruta para guardar, no tanto del nombre del archivo

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 27/05/2008, 12:23
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 4 meses
Puntos: 9
Respuesta: xelUpload: error en llamada a procedimiento

Pues parece que no va por ahí la cosa, tanto da que anexe una barra "\" al final de la ruta (después de hacer Server.MapPath) como sin ponerla...

La llamada la he hecho con estos dos casos:

Código:
c:\inetpub\wwwroot\upload\users\2008.05

c:\inetpub\wwwroot\upload\users\2008.05\
Que se corresponde con

Código:
Server.MapPath("/upload/users/2008.05")
¿Cosa rara verdad? Creo que la cosa va más por la sentencia oFich.Write Chr(AscB(MidB(Datos, i, 1))), como decías antes debe ser que el error salta al encontrar un nulo en esa línea, lo que no se es como tratarlo, ya que no basta con If Datos & "" <> "" Then...

Gracias por tus respuestas

EDITO: VAYA COSA MÁS RARA!! Bueno, pues resulta que probando, antes sin poner la barra final en la ruta digamos que funcionaba ok una de cada 20 veces que fallaba, ahora con la barra final, pues falla una de cada 20 veces que funciona (vamos, que funcionan casi todos los ficheros que subo, y no, el error no está en los ficheros, son jpg bien formados)

Última edición por PosProdukcion; 27/05/2008 a las 12:30
  #6 (permalink)  
Antiguo 27/05/2008, 13:18
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: xelUpload: error en llamada a procedimiento

Cita:
Iniciado por PosProdukcion Ver Mensaje
....
[/code]¿Cosa rara verdad? Creo que la cosa va más por la sentencia oFich.Write Chr(AscB(MidB(Datos, i, 1))), como decías antes debe ser que el error salta al encontrar un nulo en esa línea, lo que no se es como tratarlo, ya que no basta con If Datos & "" <> "" Then...
tendremos que recurrir al Sñr de las oscuridades para que nos ilumine el camino hacia una pronta respuesta (p.d. Donde Andara Mister Darkness o Sensei tiguron)
y solo por curiosidad, para que sirve este Amperson dentro del IF

Cita:
If Datos & "" <> "" Then...
???
Cita:
Iniciado por PosProdukcion Ver Mensaje
....
EDITO: VAYA COSA MÁS RARA!! Bueno, pues resulta que probando, antes sin poner la barra final en la ruta digamos que funcionaba ok una de cada 20 veces que fallaba, ahora con la barra final, pues falla una de cada 20 veces que funciona (vamos, que funcionan casi todos los ficheros que subo, y no, el error no está en los ficheros, son jpg bien formados)
90% favorable, es mejor que 90% desfavorable
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 27/05/2008, 14:44
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 4 meses
Puntos: 9
Respuesta: xelUpload: error en llamada a procedimiento

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
y solo por curiosidad, para que sirve este Amperson dentro del IF
Ah, eso! Como no se el tipo de Datos, pues es una forma "casera" de convertirlo a string y comprobar si está vacía, en realidad supongo que sería más correcto preguntar si es nulo en función de su tipo de datos...

Seguiré probando en los próximos días a ver como de estable se muestra el upload... ya os contaré...
  #8 (permalink)  
Antiguo 27/05/2008, 18:39
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: xelUpload: error en llamada a procedimiento

Cita:
Iniciado por PosProdukcion Ver Mensaje
Ah, eso! Como no se el tipo de Datos, pues es una forma "casera" de convertirlo a string y comprobar si está vacía, en realidad supongo que sería más correcto preguntar si es nulo en función de su tipo de datos...

Seguiré probando en los próximos días a ver como de estable se muestra el upload... ya os contaré...
hasta se me afigura que eres paisano (mexicano)

Cita:
if (cstr(Datos))<>"" then
o en su caso de null o vacio
Cita:
if isnull(cstr(Datos)) or isempty(cstr(Datos)) then
pero buena inventiva,
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 28/05/2008, 01:46
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 4 meses
Puntos: 9
Respuesta: xelUpload: error en llamada a procedimiento

Bueno, soy español, pero ya sabes que queda cerca de méxico, sólo un poquito de agua entre medias
  #10 (permalink)  
Antiguo 09/09/2008, 12:35
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: xelUpload: error en llamada a procedimiento

Buen día

Espero que tengas el mismo error que tenia y tambien sea buen dia para ti, toda una mañana buscando el error y casi entro hasta el codigo maquina. Bueno exagero un poco.

Igual ya habia usado xelUpload y me habia funcionado muy bien y ahora para otra aplicacion que estoy desarrollando no queria.
Estoy desarrollando con Dreamweaver ahora con CS3 el primero fue con MX

y los encabezados que pone por default son diferentes

lo cambie al
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
que es el que ponia DW MX y ya se solucionó.

En resumen. Cuidar el tipo de codificación de la página que ejecuta el Upload.

Espero haberme explicado y sirva a otros.
Suerte
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




La zona horaria es GMT -6. Ahora son las 14:51.