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

problema con upload de archivos.....

Estas en el tema de problema con upload de archivos..... en el foro de ASP Clásico en Foros del Web. hola a todos tengo un formulario para subir dos archivos a la vez.... <form method="post" action="salvafoto.asp" enctype="multipart/form-data"> <input type="file" name="hotel" size="20"></td> <input type="file" name="img" size="20"></td> ...
  #1 (permalink)  
Antiguo 14/10/2003, 11:10
Avatar de Fher  
Fecha de Ingreso: febrero-2003
Ubicación: En algun lugar de cancun
Mensajes: 384
Antigüedad: 21 años, 4 meses
Puntos: 0
problema con upload de archivos.....

hola a todos tengo un formulario para subir dos archivos a la vez....

<form method="post" action="salvafoto.asp" enctype="multipart/form-data">

<input type="file" name="hotel" size="20"></td>
<input type="file" name="img" size="20"></td>

<input name="submit" type="submit" value="Agregar">
</form>

pero el problema esta que solo me deja subir uno a la vez ya que si quiero subir los dos solo me scribe uno... ok altere el codigo para que se pudieran subir los dos y ahora me marca que notengo permisos para escribir, revise mis carpetas, mi administrador y tengo todos los permisos adecuados para lectura y escritura....

este es el codigo donde se recupera lo que envio por fomulario

<%

Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")


BuildUploadRequest RequestBin

contentType = UploadRequest.Item("hotel").Item("ContentType")
ruta = UploadRequest.Item("hotel").Item("FileName")
archivo = Right(ruta,Len(ruta)-InstrRev(ruta,"\"))
value = UploadRequest.Item("hotel").Item("Value")

contentType = UploadRequest.Item("img").Item("ContentType")
ruta = UploadRequest.Item("img").Item("FileName")
archivo = Right(ruta,Len(ruta)-InstrRev(ruta,"\"))
value = UploadRequest.Item("img").Item("Value")

Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")


Set crearchivo = ScriptObject.CreateTextFile(Server.mappath(".") & "/imagenes/"&archivo)

For i = 1 to LenB(value)
crearchivo.Write chr(AscB(MidB(value,i,1)))
Next

crearchivo.Close
hotel=archivo

%>
<!--#include file="upload.asp"-->

porque me marca error de permiso si tengo todos los permisos necesarios en mi carpet imagenes
Error Type:
Microsoft VBScript runtime (0x800A0046)
Permission denied

que tengo mal??'
  #2 (permalink)  
Antiguo 14/10/2003, 16:28
Avatar de Fher  
Fecha de Ingreso: febrero-2003
Ubicación: En algun lugar de cancun
Mensajes: 384
Antigüedad: 21 años, 4 meses
Puntos: 0
se me olvidaba el codigo del upload

Sub BuildUploadRequest(RequestBin)
'Get the boundary
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Conte nt-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filen ame="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Test if object is of file type
If PosFile<>0 AND (PosFile<PosBound) Then
'Get Filename, content-type and content of file
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
'Add filename to dictionary object
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'Add content-type to dictionary object
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
'Get content of object
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
'Get content of object
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
'Add content to dictionary object
UploadControl.Add "Value" , Value
'Add dictionary object to main dictionary
UploadRequest.Add name, UploadControl
'Loop to next object
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),Requ estBin,boundary)
Loop

End Sub

'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function

'Byte string to string conversion
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
  #3 (permalink)  
Antiguo 14/10/2003, 16:33
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
IUSR_nombredetumaquina

este es el usuario que debe de tener los permisos en el directorio donde quieres crear las carpetas, o el usuario que tengas dentro del IIS en la carpeta donde vas a escribir le das con el boton derecho - propiedades - seguridad de directorios - control de autentificacion y acceso anonimo (modificar) y el usuario que tengas en nombre de usuario es el que debes tener en el exposrador de win con los permisos.
  #4 (permalink)  
Antiguo 13/12/2003, 05:36
 
Fecha de Ingreso: enero-2002
Mensajes: 132
Antigüedad: 22 años, 5 meses
Puntos: 1
De acuerdo creo que puede ser de esto

Si la carpeta tiene permisos para poder escribir, entonces es de esta linea... prueba una de estas dos posibilidades y dime si te funciona, si sigue sin funcionarte es posible que esté en un nivel superior de carpetas al que planteo.

Set crearchivo = ScriptObject.CreateTextFile(Server.mappath(".") & "imagenes/"&archivo)

Set crearchivo = ScriptObject.CreateTextFile(Server.mappath(".") & "../imagenes/"&archivo)

Ten en cuenta que el server.mappath te va a terminar con una /
por lo que con lo que tu ponias terminaba con
//imagenes/

__________________
Un saludo, esperando ser de ayuda...
COMUN :stress:

Diseño y Programación
Tierra de Califas
http://www.tecnocodigo.com/dipro/
  #5 (permalink)  
Antiguo 09/02/2004, 07:52
 
Fecha de Ingreso: octubre-2003
Ubicación: ***
Mensajes: 152
Antigüedad: 20 años, 7 meses
Puntos: 0
ponlo asi

Set ScriptObject = CreateObject("Scripting.FileSystemObject")

Set crearchivo = ScriptObject.CreateTextFile(Server.mappath(".") & "\imagenes\"&archivo)
  #6 (permalink)  
Antiguo 09/02/2004, 10:20
Avatar de Fher  
Fecha de Ingreso: febrero-2003
Ubicación: En algun lugar de cancun
Mensajes: 384
Antigüedad: 21 años, 4 meses
Puntos: 0
Gracias ya lo he resuelto
  #7 (permalink)  
Antiguo 09/02/2004, 12:20
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
fue esto ?

he tenido problemas al trabajar con creacion de archivos, carpeta......
Pero es debido al bloqueo de scripts que tienen los antivirus como el norton.

hay ke deshabilitar el blokeo de scripts en las vacunas...
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 12:11.