Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/07/2004, 07:42
juliko
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 185
Antigüedad: 21 años, 3 meses
Puntos: 0
Problemas con xelupload

Saludos a todos/as
Tengo un problema muy extraño, resulta que utilizo xelupload para subir ficheros a mi servidor web propio (IIS 6.0 con windows 2003), pero me da un fallo cuando intento subir ficheros superiores a 200 Kb, inferiores los que quieras pero superando este tamaño me da el siguiente mensaje:

Objeto Request error 'ASP 0104 : 80004005'

Operación no autorizada

/acceso/correo/xelupload.asp, línea 60


el código es el siguiente
Public Sub Upload()
'Inicia el proceso. Debe llamarse ANTES DE HACER CUALQUIER OTRA COSA

Dim byteDatos, strControl
Dim iPosInicio, iPosFin, iPos, byteLimite, posLimite
Dim iPosFich, iPosLim

byteDatos = Request.BinaryRead(Request.TotalBytes) ****esta es la línea 60
iPosInicio = 1
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(13)))
if (iPosFin-iPosInicio) <= 0 then
'terminamos, no hay nada que leer
Exit Sub
end if
'extraemos el limite de principio y fin de los datos (p.e. -----2323g237623)
byteLimite = MidB(byteDatos, iPosInicio, iPosFin-iPosInicio)
posLimite = InStrB(1, byteDatos, byteLimite)

'terminamos cuando la posición del próximo límite sea igual
'a la del límite final, que lleva "--" detrás.
do until posLimite = InStrB(byteDatos, byteLimite & str2byte("--"))

iPos = InStrB(posLimite, byteDatos, str2byte("Content-Disposition"))
iPos = InStrB(iPos, byteDatos, str2byte("name=")) 'nombre del control en <FORM>
iPosInicio = iPos + 6 'me salto 6 caracteres -> name="
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(34))) 'busco las comillas de cierre
'y tengo el nombre del control!
strControl = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))
'busco ahora los datos en sí del control
iPosFich =InStrB(posLimite, byteDatos, str2byte("filename="))
posLimite = InStrB(iPosFin, byteDatos, byteLimite)

'¿fichero o campo del formulario?
if iPosFich <> 0 and iPosFich < PosLimite then
'es un fichero, creo un nuevo objeto fichero y lo añado a Ficheros
Dim oFichero, strNombre, strForm
set oFichero = new Fichero

iPosInicio = iPosFich + 10 'me salto 10 caracteres -> filename="
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(34)))
strNombre = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))
'quito la ruta inicial
oFichero.Nombre = Right(strNombre, Len(strNombre)-InStrRev(strNombre, "\")) '"

iPos = InStrB(iPosFin, byteDatos, str2byte("Content-Type:"))
iPosInicio = iPos + 14 'me salto Content-Type y un espacio!!
iPosFin = InStrB(iPosInicio, byteDatos, str2byte(chr(13))) 'busco el retorno de carro
oFichero.TipoContenido = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))

iPosInicio = iPosFin + 4 'me salto los 3 retornos de carro que lleva!!!
iPosFin = InStrB(iPosInicio, byteDatos, byteLimite)-2 'dos caracteres atrás
oFichero.Datos = MidB(byteDatos, iPosInicio, iPosFin-iPosInicio)
if oFichero.Tamano > 0 then 'lo añado a la colección Ficheros!
Ficheros.Add strControl, oFichero
end if
else
'es un campo del formulario
iPos = InStrB(iPos, byteDatos, str2byte(chr(13)))
iPosInicio = iPos + 4
iPosFin = InStrB(iPosInicio, byteDatos, byteLimite)-2
'extraigo el valor del control del formulario!
strForm = byte2str(MidB(byteDatos, iPosInicio, iPosFin-iPosInicio))
if not eltosForm.Exists(strControl) then
eltosForm.Add strControl, strForm
else
eltosForm.Item(strControl) = eltosForm.Item(strControl)+","&strForm
end if
end if
'saltamos al siguiente límite
iPosLimite = InStrB(iPosLimite+LenB(byteLimite), byteDatos, byteLimite)
loop

End Sub




Pero lo más extraño es que si lo pruebo con IIS 5.0 que trae el XP me funciona correctamente, con cualquier fichero independientemente del tamaño que tenga.

¿Hay alguna opción en el IIS donde se limite el tamaño de los ficheros a subir?

Gracias por su atención.