¿Cómo mantener el nombre original en la carga asp? Pídele ayuda a Dios
En ASP, el motivo para cambiar el nombre de los archivos al cargarlos es evitar conflictos de nombres de archivos y problemas de seguridad. Sin embargo, si realmente necesita conservar el nombre del archivo original, puede hacerlo de las dos maneras siguientes:
1. Obtenga el nombre del archivo original del archivo cargado
Puede. use la propiedad `del objeto de archivo cargado OriginalFileName` para obtener el nombre del archivo original del archivo cargado y luego guarde el archivo cargado directamente en la ruta especificada:
```asp
set upload = Server.CreateObjectPersits.Uploadset file = upload.Filesfile1if file.Size > Then
' Obtenga el nombre del archivo original
filename = file.OriginalFileName
' Guarde el archivo cargado directamente en la ruta especificada
file.SaveAs(Server.MapPathimages/upfile & & filename)
End If
`` `
Utilice este método. Cabe señalar que si varios usuarios cargan archivos con el mismo nombre, los archivos cargados más tarde pueden sobrescribir los archivos cargados primero. Si no desea sobrescribir un archivo existente, es mejor realizar un procesamiento adicional en el nombre del archivo, como agregar una marca de tiempo delante del nombre del archivo.
2. Copie el archivo cargado y use el nombre de archivo original.
Otro método es guardar el archivo cargado en un directorio temporal y cambiarle el nombre después de cargarlo.
Luego asigne el nombre del archivo al nombre del archivo original, copie el archivo renombrado en el directorio de carga al directorio oficial y use el nombre del archivo original:
```asp
set upload = Server.CreateObjectPersits.Uploadset file = upload.Filesfile1if file.Size > Then
' Cambie el nombre del archivo cargado
filenameend = split(file.FileName,
filename = Trim(filenameend()) & & FormatDateTime(Now(), ) & & filenameend(1)
tempPath = Server.MapPathimages/upfile/temp ' Crea un directorio temporal
Establecer fso = CreateObjectScripting.FileSystemObject si no es fso.FolderExists(tempPath) Entonces
fso.CreateFolder tempPath
End If
' Guarde el archivo cargado en el directorio temporal
file.SaveAs (tempPath & & filename)
' Copie el archivo renombrado al directorio oficial y use el nombre de archivo original
Establezca fso = Nada
Establecer fso = CreateObjectScripting.FileSystemObject Si no es fso.FileExists(tempPath & & filename) Entonces
El archivo Response.Write no existeElse
fileNameArr = Split(file.OriginalFileName, fileExt = fileNameArr(UBound(fileNameArr))
destPath = Server.MapPathimages/upfile destFileName = destPath & & filenameArr() & & fileExt
fso. CopyFile tempPath & & filename, destFileName, True
End If
' Elimina el directorio temporal
fso.DeleteFolder(tempPath)
End Si
```
En el código anterior, primero se cambia el nombre del archivo cargado, lo que incluye agregar una marca de tiempo, etc., y luego el archivo cargado se guarda en el directorio temporal especificado. . Luego copie el archivo renombrado al directorio oficial y use el nombre de archivo original. Finalmente, elimine el directorio temporal. Cabe señalar que este método requiere el uso de un objeto Scripting.FileSystemObject para operar el sistema de archivos, que primero debe crearse usando CreateObject.