Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/12/2008, 06:09
calinzt
 
Fecha de Ingreso: octubre-2008
Mensajes: 51
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Renombrar Archivo cuando se sube al servidor y no despues

Cita:
Iniciado por JuanRAPerez Ver Mensaje
pues supongo que depende del componente que usas
en la propiedad save puedes ver si lo cambias

que código usas para subir?
algún componente?
Gracias por responder, el fin de semana no tenia el codigo , pero volviendo al tema no uso componente y este es el codigo que lo subo y despues hago el metodo de copiar , renombrar y eliminar el antiguo.

Código asp:
Ver original
  1. 'Subir Archivo---------------------------------------------------------------
  2. <%Case 2
  3.     ForWriting = 2
  4.     adLongVarChar = 201
  5.     lngNumberUploaded = 0
  6.     noBytes = Request.TotalBytes
  7.     binData = Request.BinaryRead (noBytes)
  8. Set RST = CreateObject("ADODB.Recordset")
  9.     LenBinary = LenB(binData)
  10. if LenBinary > 0 then
  11.     RST.Fields.Append "myBinary", adLongVarChar, LenBinary
  12.     RST.Open
  13.     RST.AddNew
  14.     RST("myBinary").AppendChunk BinData
  15.     RST.Update
  16.     strDataWhole = RST("myBinary")
  17. End If
  18.     strBoundry = Request.ServerVariables ("HTTP_CONTENT_TYPE")
  19.     lngBoundryPos = instr(1,strBoundry,"boundary=") + 8
  20.     strBoundry = "--" & right(strBoundry,len(strBoundry)-lngBoundryPos)
  21.     lngCurrentBegin = instr(1,strDataWhole,strBoundry)
  22.     lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
  23. do while lngCurrentEnd > 0
  24.     strData = mid(strDataWhole,lngCurrentBegin, lngCurrentEnd - lngCurrentBegin)
  25.     strDataWhole = replace(strDataWhole,strData,"")
  26.     lngBeginFileName = instr(1,strdata,"filename=") + 10
  27.     lngEndFileName = instr(lngBeginFileName,strData,chr(34))
  28.  
  29. if lngBeginFileName = lngEndFileName and lngNumberUploaded = 0 then
  30.    
  31. Response.Write "<FONT FACE=Verdana SIZE=5>Ha ocurrido un error</FONT><BR><BR>"
  32.     Response.Write "<FONT FACE=Verdana SIZE=2><B>Explicación:</B><BR>"
  33.     Response.Write "1) Deberías seleccionar al menos 1 archivo.<BR>"
  34.     Response.Write "2) Deberías seleccionar los archivos en orden, de uno en uno y de arriba a abajo.<BR><BR>"
  35.     Response.Write "<B>Solución:</B><BR>"
  36.     Response.Write "Retrocede pulsando el botón de <B>Retroceder</B> e inténtalo de nuevo.</FONT><BR><BR>"
  37.     Response.Write "<INPUT TYPE=Button onclick=history.go(-1) value='<< Retroceder' ID='button'1 NAME='button'1 Class=presenta2>"
  38.     Response.End
  39. end if
  40.  
  41. if lngBeginFileName <> lngEndFileName then
  42.     strFilename = mid(strData,lngBeginFileName,lngEndFileName - lngBeginFileName)
  43.     tmpLng = instr(1,strFilename,"\")
  44. Do While tmpLng > 0
  45.     PrevPos = tmpLng
  46.     tmpLng = instr(PrevPos + 1,strFilename,"\")
  47. Loop
  48.     FileName = right(strFilename,len(strFileName) - PrevPos)
  49.     lngCT = instr(1,strData,"Content-Type:")
  50. If lngCT > 0 then
  51.     lngBeginPos = instr(lngCT,strData,chr(13) & chr(10)) + 4
  52. Else
  53.     lngBeginPos = lngEndFileName
  54. End If
  55.     lngEndPos = len(strData)
  56.     lngDataLenth = lngEndPos - lngBeginPos
  57.     strFileData = mid(strData,lngBeginPos,lngDataLenth)
  58.     NombreNuevo = "prueba"
  59. Set fso = CreateObject("Scripting.FileSystemObject")
  60. Set f = fso.OpenTextFile(server.mappath(".") & "\imagen\" & FileName, ForWriting, True)
  61. f.Write strFileData
  62. set f = nothing
  63. set fso = nothing
  64.  
  65. lngNumberUploaded = lngNumberUploaded + 1
  66.  
  67. '/Renombra los archivos subidos------------------------------------------------/'
  68. Set fsx = CreateObject("Scripting.FileSystemObject")
  69. set Archivo = fsx.GetFile(Server.MapPath(".") & "\imagen\" & FileName)
  70. Extension = fsx.GetExtensionName(Archivo)
  71. Call Archivo.Copy(Server.MapPath(".") & "\imagen\" & NombreNuevo & lngNumberUploaded & "." & Extension)
  72. Eliminado = Server.MapPath(".") & "\imagen\" & FileName
  73.  
  74. if fsx.FileExists(Archivo) = True then
  75. call Archivo.Delete()    
  76. Response.Write("Eliminado el archivo"&" "&Eliminado)
  77. 'Response.Write(Archivo)
  78. end if
  79.  
  80. Set Archivo = Nothing
  81. set fsx = nothing
  82. '/------------------------------------------------------------------------------/'
  83.  
  84. End If
  85.     lngCurrentBegin = instr(1,strDataWhole,strBoundry)
  86.     lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
  87. loop
  88.        
  89.     Response.Write "<FONT FACE=Verdana SIZE=5>Fichero(s) subido(s) al servidor</FONT><BR><BR>"
  90.     Response.Write "<FONT FACE=Verdana SIZE=2>" & lngNumberUploaded & " fichero(s) subidos al servidor.</FONT><BR><BR>"
  91.     Response.Write "<INPUT TYPE=Button onclick='document.location=" & chr(34) & "Subir_Ficheros.asp" & chr(34) & "' VALUE='<< Enviar más Loteo(s)' ID='button'1 NAME='button'1 Class=presenta2>"
  92.  
  93. End Select%>

Cita:
Iniciado por u_goldman Ver Mensaje
Más que cómo hacerlo, me pregunto por qué hacerlo ¿qué diferencia tiene?

Saludos
es un paso demas que se esta haciendo copiando y pegando el archivo, a su vez que en mi caso se esta dando un servicio publico se suben archivos a cada momento y de peso algunas veces grandes con cada solicitud alrededor de 3000 o mas, por eso quiero tambien hacerlo en el momento de la subida y no despues.