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

Subir archivos al servidor.

Estas en el tema de Subir archivos al servidor. en el foro de ASP Clásico en Foros del Web. Cómo hago para subir un archivo por ejemplo audio.wav a una carpeta de mi servidor por ejemplo /diarioexpres/audio a través de un formulario? <p align="center"><a ...
  #1 (permalink)  
Antiguo 17/08/2002, 08:05
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años, 5 meses
Puntos: 0
Subir archivos al servidor.

Cómo hago para subir un archivo por ejemplo audio.wav a una carpeta de mi servidor por ejemplo /diarioexpres/audio a través de un formulario?

<p align="center"><a href="http://www.diarioexpres.tk"><img border="0" src="http://www.dacoyinternet.com/diarioexpres/banners/Mio1.gif" width="468" height="60"></a></p>
  #2 (permalink)  
Antiguo 17/08/2002, 10:19
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: Subir archivos al servidor.

Escribeme y te lo paso, es que es bastante largo el codigo
;)
  #3 (permalink)  
Antiguo 18/08/2002, 02:34
 
Fecha de Ingreso: enero-2002
Mensajes: 217
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Subir archivos al servidor.

'************************************* Funcion para cambiar el nombre al archivo **************
Function cambiar_nombre(archivo_original,este_folder_variab le,letras)

directorio_final = server.MapPath(&quot;.&quot;) &amp; este_folder_variable ' esto es grabar el archivo subido abajo del directorio actual en este_folder_variable

x = revisar(directorio_final)

If x = &quot;1&quot; then
Response.write &quot;Se creó un directorio especialmente para ti.....&quot;
Else
Response.write &quot;Se agrego el siguiente archivo a tu directorio...&quot;
End if


Randomize
cadena_variable = &quot;&quot;
temp = directorio_final &amp; archivo_original
temp2 = temp
caracteres_a_agregar = letras

' caracteres_a_agregar es la cantidad de caracteres que se agregaran al inicio
' del nombre del archivo original

For i = 1 to caracteres_a_agregar
cadena_variable = cadena_variable &amp; chr(int(Rnd * 25) + 65) '65 es el ASCII para la &quot;A&quot;
Next
' temp = cadena_variable &amp; &quot;-&quot; &amp; temp 'asi queda el archivo modificado
temp = directorio_final &amp; cadena_variable &amp; &quot;-&quot; &amp; archivo_original 'asi queda el archivo modificado


' ahora se verificara que el &quot;nuevo archivo&quot; exista o no, si existe se vuelve a ejecutar este fun

Dim fso, msg
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot ;)
If (fso.FileExists(temp)) Then
cambiar_nombre(temp2) ' aqui se manda de vuelta a &quot;randomizar&quot; el nombre porque ya existe
Else
cambiar_nombre = temp ' aqui se regresa el nombre del archivo ya modificado y verificado que es unico
exit function
End If

End Function
'************************************* Fin de funcion para cambiar el nombre al archivo **************
%&gt;
&lt;%
'************************************************* ** revisar que exista un directorio, si no, que lo haga
Function revisar(folder)
Dim fso, msg,f
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot ;)
If not (fso.FolderExists(folder)) Then
Set f = fso.CreateFolder(folder)
revisar = &quot;1&quot;
Else
revisar = &quot;0&quot;
End If
End Function
%&gt;


&lt;%response.buffer=true
Func = Request(&quot;Func&quot;)
if isempty(Func) then
Func = 1
end if
Select case Func
case 1
'You do not need to use this form to send your files.
'However you should not give your submit button a NAME or ID.
%&gt;
&lt;h2&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;Selecciona un archivo para subir.&lt;/font&gt;&lt;/h2&gt;
&lt;FORM ENCTYPE=&quot;multipart/form-data&quot; ACTION=&quot;default.asp?func=2&quot; METHOD=POST id=form1 name=form1&gt;
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;Tipea la Dirección completa de donde se subira el archivo
incluyendo su nombre y extensión.&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;-ó-&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;Utiliza el [Browse] botón examinar para buscar el archivo en
tu computador.&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;Luego Presiona botón [Subir Archivo]&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;Strong&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;Archivos...&amp;nbsp;&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;&lt;INPUT NAME=File1 SIZE=30 TYPE=file&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;&lt;INPUT NAME=File2 SIZE=30 TYPE=file&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;&lt;INPUT NAME=File2 SIZE=30 TYPE=file&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=left&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;Subir archivo&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;NOTA: Espera que notifiquemos la transferencia.&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;font face=&quot;Verdana&quot; size=&quot;2&quot;&gt;
&lt;%
case 2
ForWriting = 2

adLongVarChar = 201
lngNumberUploaded = 0
limite_de_tamano = 5000000 'cada uno de los archivos no puede medir mas de 5 millones de bytes
caracteres_a_agregar = 0 ' cantidad de letras que agreraran al inicio del nombre del archivo
este_folder_variable = &quot;\archivos-subidos\&quot; 'este es un folder abajo de la pagina actual donde se grabaran los archivos
' extensiones1 = &quot;.jpg&quot;
' extensiones2 = &quot;.gif&quot;
' extensiones3 = &quot;.doc&quot;
' extensiones4 = &quot;.ppt&quot;
' extensiones5 = &quot;.xls&quot;
' extensiones6 = &quot;.zip&quot;

Response.write &quot;Existe un limite de &quot; &amp; limite_de_tamano &amp; &quot; bytes para cada uno de los archivos a subir...&quot; &amp; &quot;&lt;br&gt;&quot;
Response.write &quot;Se agregaran &quot; &amp; caracteres_a_agregar &amp; &quot; caracteres al inicio del nombre de los archivos renombrados...&quot; &amp; &quot;&lt;br&gt;&quot;
Response.write &quot;Los archivos se grabaran en &quot; &amp; este_folder_variable &amp; &quot; que estara abajo de esta pagina...&quot; &amp; &quot;&lt;br&gt;&quot;
' Response.write &quot;Solo se pueden subir archivos con ext... &quot; &amp; extensiones1 &amp; extensiones2 &amp; extensiones3 &amp; extensiones4 &amp; extensiones5 &amp; extensiones6 &amp; &quot;&lt;br&gt;&quot;

response.write &quot;&lt;hr&gt;&quot;

'Get binary data from form

noBytes = Request.TotalBytes
binData = Request.BinaryRead (noBytes)

'convery the binary data to a string
Set RST = CreateObject(&quot;ADODB.Recordset&quot;)
LenBinary = LenB(binData)

if LenBinary &gt; 0 then
RST.Fields.Append &quot;myBinary&quot;, adLongVarChar, LenBinary
RST.Open
RST.AddNew
RST(&quot;myBinary&quot;).AppendChunk BinData
RST.Update
strDataWhole = RST(&quot;myBinary&quot;)
End If

'get the boundry indicator

strBoundry = Request.ServerVariables (&quot;HTTP_CONTENT_TYPE&quot;)
lngBoundryPos = instr(1,strBoundry,&quot;boundary=&quot;) + 8
strBoundry = &quot;--&quot; &amp; right(strBoundry,len(strBoundry)-lngBoundryPos)

'Get first file boundry positions.

lngCurrentBegin = instr(1,strDataWhole,strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1

'*******************************************
do while lngCurrentEnd &gt; 0

'Get the data between current boundry and remove it from the whole.
strData = mid(strDataWhole,lngCurrentBegin, lngCurrentEnd - lngCurrentBegin)
strDataWhole = replace(strDataWhole,strData,&quot;&quot;)

'Get the full path of the current file.
lngBeginFileName = instr(1,strdata,&quot;filename=&quot;) + 10
lngEndFileName = instr(lngBeginFileName,strData,chr(34))

'Make sure they selected at least one file.
if lngBeginFileName = lngEndFileName and lngNumberUploaded = 0 then
Response.Write &quot;&lt;h2&gt; A ocurrido un Error.&lt;/h2&gt;&quot;
Response.Write &quot;Debes seleccionar un archivo para subir&quot;
Response.Write &quot;&lt;br&gt;&lt;br&gt;Has Clic en back, make the needed corrections and resubmit your information.&quot;
Response.Write &quot;&lt;br&gt;&lt;br&gt;&lt;input type='button' onclick='history.go(-1)' value='&lt;&lt; Back' id='button'1 name='button'1&gt;&quot;
Response.End
end if

'There could be one or more empty file boxes.
if lngBeginFileName &lt;&gt; lngEndFileName then
strFilename = mid(strData,lngBeginFileName,lngEndFileName - lngBeginFileName)
'Loose the path information and keep just the file name.
tmpLng = instr(1,strFilename,&quot;\&quot;)
do while tmpLng &gt; 0
PrevPos = tmpLng
tmpLng = instr(PrevPos + 1,strFilename,&quot;\&quot;)
loop
FileName = right(strFilename,len(strFileName) - PrevPos)
este_folder_variable = &quot;\archivos-subidos\&quot; 'este es un folder abajo de la pagina actual

FileName = cambiar_nombre(Filename,este_folder_variable,carac teres_a_agregar) 'aqui es donde se le cambia el nombre al archivo
' y se regresa con la ruta ya dentro de este_folder_variable
Filename2 = Filename
tmpLng = instr(1,Filename2,&quot;\&quot;) ' ahora obtendres solo el nombre del archivo originado
do while tmpLng &gt; 0 ' esto es solo es para hacer el link en la pagina
PrevPos = tmpLng ' asi que puedes borrar esta parte
tmpLng = instr(PrevPos + 1,FileName2,&quot;\&quot;)
loop

FileName3 = right(FileName2,len(FileName2) - PrevPos)
este_folder_variable_inverso = &quot;archivos-subidos/&quot;

'Get the begining position of the file data sent.
'if the file type is registered with the browser then there will be a Content-Type

lngCT = instr(1,strData,&quot;Content-Type:&quot;)

if lngCT &gt; 0 then
lngBeginPos = instr(lngCT,strData,chr(13) &amp; chr(10)) + 4
else
lngBeginPos = lngEndFileName
end if

'Get the ending position of the file data sent.

lngEndPos = len(strData)

'Calculate the file size.

lngDataLenth = lngEndPos - lngBeginPos

tamano = lngDatalenth

If tamano&lt;limite_de_tamano then

%&gt;
&lt;a href=&quot;&lt;%=este_folder_variable_inverso &amp; filename3%&gt;&quot;&gt;Da un click aqui para que veas el archivo que subiste.&lt;/a&gt; Con: &lt;%=lngDatalenth%&gt; Bytes&lt;br&gt;
&lt;%
'Get the file data

strFileData = mid(strData,lngBeginPos,lngDataLenth)

'Create the file.

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot ;)
Set f = fso.OpenTextFile(FileName, ForWriting, True)
f.Write strFileData
set f = nothing
set fso = nothing

lngNumberUploaded = lngNumberUploaded + 1

'Get then next boundry postitions if any.
Else

Response.write &quot;El archivo es demasiado grande (mas de 5000000 bytes ) y no sera subido...&quot;
End if
End if
lngCurrentBegin = instr(1,strDataWhole,strBoundry)
lngCurrentEnd = instr(lngCurrentBegin + 1,strDataWhole,strBoundry) - 1
loop
Response.Write &quot;&lt;h2&gt;Archivo(s) Subidos&lt;/h2&gt;&quot;
Response.Write lngNumberUploaded &amp; &quot; Archivo Subido.&lt;br&gt;&quot;
Response.Write &quot;&lt;br&gt;&lt;br&gt;&lt;input type='button' onclick='document.location=&quot; &amp; chr(34) &amp; &quot;default.asp&quot; &amp; chr(34) &amp; &quot;' value='&lt;&lt; Back to Listings' id='button'1 name='button'1&gt;&quot;
End select
%&gt;

&lt;/font&gt;

&lt;/form&gt;
  #4 (permalink)  
Antiguo 18/08/2002, 02:36
 
Fecha de Ingreso: enero-2002
Mensajes: 217
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Subir archivos al servidor.

Solo debes cambiar las extensiones para que te funcione para .wav y modificar si quieres el nombre de la carpeta.
espero te sirva...


PORQUE NO SALE MI FIRMA¡¡¡¡¡¡


  #5 (permalink)  
Antiguo 18/08/2002, 14:07
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Re: Subir archivos al servidor.

amigo:
debes usar un componente para asp.
yo utilizo asp upload. por ahi anda el crack, no es dificil de encontrar.
www.aspupload.com
-------------------------------------------
con este componente debes tener 2 paginas.

en la uno colocas:

&lt;form method=&quot;POST&quot; action=&quot;Nuevo_doc5.asp&quot; enctype=&quot;multipart/form-data&quot;&gt;
&lt;p&gt;&lt;b&gt;Subiendo Medias (???)&lt;/b&gt;&lt;/p&gt;
&lt;table border=&quot;0&quot; width=&quot;80%&quot; bgcolor=&quot;#A38C74&quot;&gt;
&lt;tr&gt;
&lt;td width=&quot;29%&quot;&gt;&lt;input type=&quot;file&quot; name=&quot;T1&quot; size=&quot;26&quot;&gt;&lt;/td&gt;
&lt;td width=&quot;71%&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;Subir&quot; name=&quot;B1&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt;


y en el otro colocas:

&lt;%
Set Upload = Server.CreateObject(&quot;Persits.Upload&quot;)
Upload.Save &quot;d:\clientes\metal planet\images\upload&quot;
%&gt;

&lt;b&gt;&lt;font size=&quot;2&quot;&gt;Archivo subido:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;

&lt;%
For Each File in Upload.Files
Response.Write File.Name &amp; &quot;= &quot; &amp; File.Path &amp; &quot; (&quot; &amp; File.Size &amp;&quot; bytes)&lt;BR&gt;&quot;
Next
%&gt;



y se termino tu problema.
:) ;) :cantar:
  #6 (permalink)  
Antiguo 18/08/2002, 14:10
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Subir archivos al servidor.

Gracias ya me pasaron el código y funciona.

<p align="center"><a href="http://www.diarioexpres.tk"><img border="0" src="http://www.dacoyinternet.com/diarioexpres/banner2.gif" width="468" height="60"></a></p>
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 21:02.