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

Campo archivo ( Si existe archivo o no )

Estas en el tema de Campo archivo ( Si existe archivo o no ) en el foro de ASP Clásico en Foros del Web. Hola he hecho un ASP con un form, cuyo form posee un campo archivo. Ahora este form llama a otro asp que recoje los datos ...
  #1 (permalink)  
Antiguo 28/02/2005, 11:12
 
Fecha de Ingreso: junio-2003
Mensajes: 36
Antigüedad: 21 años
Puntos: 0
Campo archivo ( Si existe archivo o no )

Hola he hecho un ASP con un form, cuyo form posee un campo archivo.

Ahora este form llama a otro asp que recoje los datos mediante
up.form ( "loquesea") y actualiza una tupla de una base de datos en función de un cierto valor.

El problema es cuando capturo el nombre del archivo que subí, la sentencia up.form(" archivo ") [ siendo archivo un campo de texto ] no me lo recoje.

Necesito trabajar con ese nombre de archivo, para hacer comparaciones con el...etc...etc...

Alguien sabe como capturar el nombre de archivo?
GRACIAS 1000.
IDG.
  #2 (permalink)  
Antiguo 28/02/2005, 12:03
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
Visual Basic Scripting Edition Referencia del lenguaje

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

Código de ejemplo de FileSystemObject
El código de ejemplo descrito en esta sección proporciona un ejemplo real que demuestra muchas de las características disponibles en el modelo de objetos FileSystemObject. Este código muestra cómo todas las características del modelo de objetos funcionan juntas y cómo utilizar esas características eficazmente en su propio código.

Observe que puesto que este código es bastante genérico, se necesita algún código adicional además de ligeras modificaciones para que este código se pueda ejecutar en su equipo. Estos cambios son necesarios por las diversas maneras en que se controlan las entradas y salidas al usuario entre las páginas Active Server y Windows Scripting Host.

Para ejecutar este código en una página Active Server, utilice los pasos siguientes:

Cree una página Web estándar con una extensión .asp.

Copie el código de ejemplo siguiente en ese archivo entre las etiquetas <BODY>...</BODY>.

Encierre todo el código dentro de etiquetas <%...%>.

Mueva la instrucción Option Explicit desde su posición actual en el código a la parte superior de su página HTML, colocándolo incluso antes de la etiqueta <HTML> de apertura.

Sitúe etiquetas <%...%> alrededor de la instrucción Option Explicit para asegurarse de que se ejecuta en el servidor.

Agregue el código siguiente al final del código de ejemplo:

Sub Print(x)
Response.Write "<PRE>&ltFONT FACE=""Courier New"" SIZE=""1"">"
Response.Write x
Response.Write "</FONT></PRE>"
End Sub
Main
El código anterior agrega un procedimiento de impresión que se ejecutará en el servidor pero que muestra los resultados en el cliente. Para ejecutar este código en Windows Scripting Host, agregue el código siguiente al final del código de ejemplo:

Sub Print(x)
WScript.Echo x
End Sub
Main
La siguiente sección contiene el código:

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' Código de ejemplo FileSystemObject
' Copyright 1998 Microsoft Corporation. Todos los derechos reservados.
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Option Explicit

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' En cuanto a la calidad del código:
' 1) El código siguiente realiza un tratamiento de cadenas
' concatenando cadenas cortas con el operador "&" .
' Puesto que la concatenación de cadenas es costosa, esta es una
' manera poco eficiente de escribir el código.
' No obstante, es una forma de escribir código muy facil de
' mantener y se utiliza aquí porque este programa realiza
' frecuentes operaciones de disco y porque el disco es mucho
' más lento que las operaciones de memoria necesarias para
' concatenar las cadenas. Tenga en cuenta que esto es un código
' de demostración, no un código de producción.
'
' 2) "Option Explicit" se utiliza porque un acceso de variable declarada
' es un poco más rápido que el acceso de variable no declarada.
' También evita que se arrastren los errores por todo el código,
' como cuando escribe DriveTypeCDORM en lugar de DriveTypeCDROM.
'
' 3) El control de errores está ausente en este código para conseguir
' un código más legible. Aunque se tomaron precauciones para asegurar
' que el código no cometerá errores en casos comunes, los sistemas de
' archivo pueden ser impredecibles. En el código de producción, utilice ' On Error Resume Next y el objeto Err para atrapar posibles errores.
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' Algunas variables globales útiles
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
Dim TabStop
Dim NewLine

Const TestDrive = "C"
Const TestFilePath = "C:\Test"

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' Constantes devueltas por Drive.DriveType
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
Const DriveTypeRemovable = 1
Const DriveTypeFixed = 2
Const DriveTypeNetwork = 3
Const DriveTypeCDROM = 4
Const DriveTypeRAMDisk = 5

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' Constantes devueltas por File.Attributes
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
Const FileAttrNormal = 0
Const FileAttrReadOnly = 1
Const FileAttrHidden = 2
Const FileAttrSystem = 4
Const FileAttrVolume = 8
Const FileAttrDirectory = 16
Const FileAttrArchive = 32
Const FileAttrAlias = 64
Const FileAttrCompressed = 128

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' Constantes para abrir archivos
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
Const OpenFileForReading = 1
Const OpenFileForWriting = 2
Const OpenFileForAppending = 8

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' ShowDriveType
' Objetivo:
' Genera una cadena que describe el tipo de unidad de un objeto
' Drive dado.
' Demuestra lo siguiente
' - Drive.DriveType
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
Function ShowDriveType(Drive)

Dim S

Select Case Drive.DriveType
Case DriveTypeRemovable
S = "Extraible"
Case DriveTypeFixed
S = "Fijo"
Case DriveTypeNetwork
S = "Red"
Case DriveTypeCDROM
S = "CD-ROM"
Case DriveTypeRAMDisk
S = "Disco RAM"
Case Else
S = "Desconocido"
End Select

ShowDriveType = S

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' ShowFileAttr
' Objetivo:
' Genera una cadena que describe los atributos de un archivo o carpeta.
' Demuestra lo siguiente
' - File.Attributes
' - Folder.Attributes
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function ShowFileAttr(File) ' File puede ser un archivo o carpeta

Dim S
Dim Attr

Attr = File.Attributes

If Attr = 0 Then
ShowFileAttr = "Normal"
Exit Function
End If

If Attr And FileAttrDirectory Then S = S & "Directorio "
If Attr And FileAttrReadOnly Then S = S & "Sólo lectura"
If Attr And FileAttrHidden Then S = S & "Oculto "
If Attr And FileAttrSystem Then S = S & "Sistema "
If Attr And FileAttrVolume Then S = S & "Volumen "
If Attr And FileAttrArchive Then S = S & "Modificado "
If Attr And FileAttrAlias Then S = S & "Alias "
If Attr And FileAttrCompressed Then S = S & "Comprimido "

ShowFileAttr = S

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' GenerateDriveInformation
' Objetivo:
' Genera una cadena que describe el estado actual de las unidades
' disponibles.
' Demuestra lo siguiente
' - FileSystemObject.Drives
' - Iterating the Drives collection
' - Drives.Count
' - Drive.AvailableSpace
' - Drive.DriveLetter
' - Drive.DriveType
' - Drive.FileSystem
' - Drive.FreeSpace
' - Drive.IsReady
' - Drive.Path
' - Drive.SerialNumber
' - Drive.ShareName
' - Drive.TotalSize
' - Drive.VolumeName
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function GenerateDriveInformation(FSO)

Dim Drives
Dim Drive
Dim S

Set Drives = FSO.Drives
S = "Número de unidades:" & TabStop & Drives.Count & NewLine & NewLine

' Construir la primera línea del informe.
S = S & String(2, TabStop) & "Nombre"
S = S & String(3, TabStop) & "Sistema"
S = S & TabStop & "Espacio"
S = S & TabStop & "Espacio"
S = S & TabStop & "Espacio"
S = S & TabStop & "Número" & NewLine

' Construir la segunda línea del informe.
S = S & "Letra"
S = S & TabStop & "Ruta"
S = S & TabStop & "Tipo"
S = S & TabStop & "¿Listo?"
S = S & TabStop & "de unidad"
S = S & TabStop & "de archivos"
S = S & TabStop & "total"
S = S & TabStop & "libre"
S = S & TabStop & "disponible"
S = S & TabStop & "de serie" & NewLine

' Línea separadora.
S = S & String(105, "-") & NewLine

For Each Drive in Drives
S = S & Drive.DriveLetter
S = S & TabStop & Drive.Path
S = S & TabStop & ShowDriveType(Drive)
S = S & TabStop & Drive.IsReady

If Drive.IsReady Then
If DriveTypeNetwork = Drive.DriveType Then
S = S & TabStop & Drive.ShareName
Else
S = S & TabStop & Drive.VolumeName
End If
S = S & TabStop & Drive.FileSystem
S = S & TabStop & Drive.TotalSize
S = S & TabStop & Drive.FreeSpace
S = S & TabStop & Drive.AvailableSpace
S = S & TabStop & Hex(Drive.SerialNumber)
End If

S = S & NewLine

Next

GenerateDriveInformation = S

End Function
  #3 (permalink)  
Antiguo 28/02/2005, 12:03
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''
' GenerateFileInformation
' Objetivo:
' Genera una cadena que describe el estado actual de un archivo.
' Demuestra lo siguiente
' - File.Path
' - File.Name
' - File.Type
' - File.DateCreated
' - File.DateLastAccessed
' - File.DateLastModified
' - File.Size
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function GenerateFileInformation(File)

Dim S

S = NewLine & "Ruta de acceso:" & TabStop & File.Path
S = S & NewLine & "Nombre:" & TabStop & File.Name
S = S & NewLine & "Tipo:" & TabStop & File.Type
S = S & NewLine & "Atributos:" & TabStop & ShowFileAttr(File)
S = S & NewLine & "Creado:" & TabStop & File.DateCreated
S = S & NewLine & "Con acceso:" & TabStop & File.DateLastAccessed
S = S & NewLine & "Modificado:" & TabStop & File.DateLastModified
S = S & NewLine & "Tamaño" & TabStop & File.Size & NewLine

GenerateFileInformation = S

End Function
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' GenerateFolderInformation
' Objetivo:
' Genera una cadena que describe el estado actual de una carpeta.
' Demuestra lo siguiente
' - Folder.Path
' - Folder.Name
' - Folder.DateCreated
' - Folder.DateLastAccessed
' - Folder.DateLastModified
' - Folder.Size
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function GenerateFolderInformation(Folder)

Dim S

S = "Ruta de acceso:" & TabStop & Folder.Path
S = S & NewLine & "Nombre:" & TabStop & Folder.Name
S = S & NewLine & "Atributos:" & TabStop & ShowFileAttr(Folder)
S = S & NewLine & "Creado:" & TabStop & Folder.DateCreated
S = S & NewLine & "Con acceso:" & TabStop & Folder.DateLastAccessed
S = S & NewLine & "Modificado:" & TabStop & Folder.DateLastModified
S = S & NewLine & "Tamaño:" & TabStop & Folder.Size & NewLine

GenerateFolderInformation = S

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' GenerateAllFolderInformation
' Objetivo:
' Genera una cadena que describe el estado actual de una carpeta y
' todos los archivos y subcarpetas.
' Demuestra lo siguiente
' - Folder.Path
' - Folder.SubFolders
' - Folders.Count
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function GenerateAllFolderInformation(Folder)

Dim S
Dim SubFolders
Dim SubFolder
Dim Files
Dim File

S = "Carpeta:" & TabStop & Folder.Path & NewLine & NewLine
Set Files = Folder.Files

If 1 = Files.Count Then
S = S & "Hay 1 archivo" & NewLine
Else
S = S & "Hay " & Files.Count & " archivos" & NewLine
End If

If Files.Count <> 0 Then
For Each File In Files
S = S & GenerateFileInformation(File)
Next
End If

Set SubFolders = Folder.SubFolders

If 1 = SubFolders.Count Then
S = S & NewLine & "Hay 1 subcarpeta" & NewLine & NewLine
Else
S = S & NewLine & "Hay" & SubFolders.Count & " subcarpetas" & NewLine & NewLine
End If

If SubFolders.Count <> 0 Then
For Each SubFolder In SubFolders
S = S & GenerateFolderInformation(SubFolder)
Next
S = S & NewLine
For Each SubFolder In SubFolders
S = S & GenerateAllFolderInformation(SubFolder)
Next
End If

GenerateAllFolderInformation = S

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' GenerateTestInformation
' Objetivo:
' Genera una cadena que describe el estado actual de la carpeta
' C:\Test y todos los archivos y subcarpetas.
' Demuestra lo siguiente
' - FileSystemObject.DriveExists
' - FileSystemObject.FolderExists
' - FileSystemObject.GetFolder
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function GenerateTestInformation(FSO)

Dim TestFolder
Dim S

If Not FSO.DriveExists(TestDrive) Then Exit Function
If Not FSO.FolderExists(TestFilePath) Then Exit Function

Set TestFolder = FSO.GetFolder(TestFilePath)

GenerateTestInformation = GenerateAllFolderInformation(TestFolder)

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' DeleteTestDirectory
' Objetivo:
' Limpia el directorio de prueba.
' Demuestra lo siguiente
' - FileSystemObject.GetFolder
' - FileSystemObject.DeleteFile
' - FileSystemObject.DeleteFolder
' - Folder.Delete
' - File.Delete
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Sub DeleteTestDirectory(FSO)

Dim TestFolder
Dim SubFolder
Dim File

' Dos formas de eliminar un archivo:

FSO.DeleteFile(TestFilePath & "\Beatles\OctopusGarden.txt")

Set File = FSO.GetFile(TestFilePath & "\Beatles\BathroomWindow.txt")
File.Delete

' Dos formas de eliminar una carpeta:
FSO.DeleteFolder(TestFilePath & "\Beatles")
FSO.DeleteFile(TestFilePath & "\ReadMe.txt")
Set TestFolder = FSO.GetFolder(TestFilePath)
TestFolder.Delete

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' CreateLyrics
' Objetivo:
' Genera un par de archivos de texto en una carpeta.
' Demuestra lo siguiente
' - FileSystemObject.CreateTextFile
' - TextStream.WriteLine
' - TextStream.Write
' - TextStream.WriteBlankLines
' - TextStream.Close
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Sub CreateLyrics(Folder)

Dim TextStream

Set TextStream = Folder.CreateTextFile("OctopusGarden.txt")

' Note que esto no agrega una línea al archivo.
TextStream.Write("Octopus' Garden ")
TextStream.WriteLine("(por Ringo Starr)")
TextStream.WriteBlankLines(1)
TextStream.WriteLine("I'd like to be under the sea in an octopus' garden in the shade,")
TextStream.WriteLine("He'd let us in, knows where we've been -- in his octopus' garden in the shade.")
TextStream.WriteBlankLines(2)

TextStream.Close

Set TextStream = Folder.CreateTextFile("BathroomWindow.txt")
TextStream.WriteLine("She Came In Through The Bathroom Window (por Lennon/McCartney)")
TextStream.WriteLine("")
TextStream.WriteLine("She came in through the bathroom window protected by a silver spoon")
TextStream.WriteLine("But now she sucks her thumb and wanders by the banks of her own lagoon")
TextStream.WriteBlankLines(2)
TextStream.Close

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' GetLyrics
' Objetivo:
' Muestra los contenidos de los archivos de letras.
' Demuestra lo siguiente
' - FileSystemObject.OpenTextFile
' - FileSystemObject.GetFile
' - TextStream.ReadAll
' - TextStream.Close
' - File.OpenAsTextStream
' - TextStream.AtEndOfStream
' - TextStream.ReadLine
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function GetLyrics(FSO)

Dim TextStream
Dim S
Dim File

' Hay varias formas de abrir un archivo de texto y varias formas de
' leer los datos de un archivo. Aquí hay dos formas para hacer cada
' una de ellas:

Set TextStream = FSO.OpenTextFile(TestFilePath & "\Beatles\OctopusGarden.txt", OpenFileForReading)

S = TextStream.ReadAll & NewLine & NewLine
TextStream.Close

Set File = FSO.GetFile(TestFilePath & "\Beatles\BathroomWindow.txt")
Set TextStream = File.OpenAsTextStream(OpenFileForReading)
Do While Not TextStream.AtEndOfStream
S = S & TextStream.ReadLine & NewLine
Loop
TextStream.Close

GetLyrics = S

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' BuildTestDirectory
' Objetivo:
' Genera una jerarquía de directorio para demostrar FileSystemObject.
' Construimos una jerarquía en este orden:
' C:\Test
' C:\Test\ReadMe.txt
' C:\Test\Beatles
' C:\Test\Beatles\OctopusGarden.txt
' C:\Test\Beatles\BathroomWindow.txt
' Demuestra lo siguiente
' - FileSystemObject.DriveExists
' - FileSystemObject.FolderExists
' - FileSystemObject.CreateFolder
' - FileSystemObject.CreateTextFile
' - Folders.Add
' - Folder.CreateTextFile
' - TextStream.WriteLine
' - TextStream.Close
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Function BuildTestDirectory(FSO)


Dim TestFolder
Dim SubFolders
Dim SubFolder
Dim TextStream

' Salir si (a) la unidad no existe, o si (b) ya existe el directorio
' generado.

If Not FSO.DriveExists(TestDrive) Then
BuildTestDirectory = False
Exit Function
End If

If FSO.FolderExists(TestFilePath) Then
BuildTestDirectory = False
Exit Function
End If

Set TestFolder = FSO.CreateFolder(TestFilePath)

Set TextStream = FSO.CreateTextFile(TestFilePath & "\ReadMe.txt")
TextStream.WriteLine("Mi colección de letras de canciones")
TextStream.Close

Set SubFolders = TestFolder.SubFolders
Set SubFolder = SubFolders.Add("Beatles")
CreateLyrics SubFolder
BuildTestDirectory = True

End Function
  #4 (permalink)  
Antiguo 28/02/2005, 12:04
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
' La rutina principal
' Primero, crea un directorio de prueba, junto con algunas subcarpetas
' y archivos. Entonces, vuelca alguna información sobre las unidades
' de disco disponibles y sobre el directorio de prueba y después,
' limpia todo de nuevo.
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''

Sub Main
Dim FSO

' Configurar datos globales.
TabStop = Chr(9)
NewLine = Chr(10)

Set FSO = CreateObject("Scripting.FileSystemObject")

If Not BuildTestDirectory(FSO) Then
Print "El directorio de prueba ya existe o no se puede crear. No puede continuar."
Exit Sub
End If

Print GenerateDriveInformation(FSO) & NewLine & NewLine
Print GenerateTestInformation(FSO) & NewLine & NewLine
Print GetLyrics(FSO) & NewLine & NewLine
DeleteTestDirectory(FSO)

End Sub
  #5 (permalink)  
Antiguo 28/02/2005, 14:27
 
Fecha de Ingreso: junio-2003
Mensajes: 36
Antigüedad: 21 años
Puntos: 0
Busqueda Campo archivo?

Hola, no entiendo nada!
Como hago lo que pido? Aqui veo codigo que la verdad no se para q es!

Podrias decirme exactamente como puedo hacerlo?
Saludos.
IDG
  #6 (permalink)  
Antiguo 28/02/2005, 16:17
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
no seas holgazan...lee y piensa un poco.
si no es tan dificil
animo.
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 20:46.