Buscando urgentemente código fuente ASP: límite de tamaño de archivo de carga, tamaño de imagen ajustado automáticamente
Categoría: Computadora/Red gt; Programación gt; Otros lenguajes de programación
Descripción del problema:
Hay muchas y complicadas búsquedas en Internet, y cuanto más se vuelve más confuso...
Lo mejor es escribir el código para cada página. Se puede resolver en dos o tres páginas. ! ! ! ! !
Análisis:
Tres páginas: página de selección, subpágina de carga, página de códigos de llamada upload.inc,
Lo estoy usando yo mismo, LZ Da puntos
1 Explorar y cargar:
lt; form action="sub" método="post" enctype="multipart/form-data" target="_self"gt; >
lt; tipo de entrada=nombre de archivo=src size="20" valor="Examinar"gt;
lt; tipo de entrada=valor de envío="Cargar" nombre=B1 IsShowProcessBar ="True; "gt;
lt; /formgt;
sub ejecuta la carga y devuelve la dirección, y guarda el nombre del archivo en la sesión (ccc)
lt; !--#include FILE="upload.inc"--gt;
lt;
carga tenue, archivo, nombre de formulario, ruta de formulario, iCount, formato de archivo
establecer carga = nueva carga_F
función MakedownName()
dim fname
fname = ahora()
fname = reemplazar (fname , "-", "")
fname = reemplazar(fname, " ", "")
fname = reemplazar(fname, ":", "") p >
nombref = reemplazar(nombref, "PM", "")
nombref = reemplazar(nombref, "AM", "")
nombref = reemplazar(nombref, "mañana", "")
fname = replace(fname, "tarde", "")
fname = int(fname) int((10-1 1)* Rnd 1)
MakedownName=fname
función final
formPath="upload/"
iCount=0
para cada nombre de formulario en upload.file ''Listar todos los archivos cargados
set file=upload.file(formName) ''Generar un objeto de archivo
fileformat=lcase (right(file .filename, 4))
si fileformat="" o fileformat="" entonces
respuesta.write"lt;scriptg
t; alert('El formato del archivo es incorrecto, ¡vuélvalo a cargar!'); ubicación='"amp; request.ServerVariables("HTTP_REFERER")amp;"'lt;/scriptgt;"
Response.end
end if
if file.FileSizegt; 0 then ''Si FileSize gt 0, significa que hay datos de archivo
newname=MakedownName; ()amp;". "amp; mid(file.FileName, InStrRev(file.FileName, ".") 1)
sesión("ccc")=nuevo nombre
archivo .SaveAs Server.mappath( formPathamp; nuevo nombre) ''Guardar archivo
iCount=iCount 1
else
respuesta.escribir "lt; estilo de fuente=FONT -TAMAÑO: 9ptgt; archivo no encontradolt;A HREF=javascript:history.back(1)gt;Reuploadlt;/Agt;lt;font style=FONT-SIZE:9ptgt;"
respuesta.end
terminar si
siguiente
gt;
lt
respuesta.escribir "lt; a href= 'upload/ "amp; newnameamp;"' target=_blankgt;upload/"amp;newnameamp;" lt;/agt;("amp;cint(file.FileSize/1024)amp;"K) ¡Carga exitosa!" p>
gt;
lt;
set file=nada
set upload=nothing ''Eliminar este objeto
gt;
El código de la página upload.inc es el siguiente:
lt; SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPTgt
dim upfile_Stream
Carga de clase_F
dim Formulario, Archivo, Versión
Subclase privada_Initialize
dim iStart, iFileNameStart, iFileNameEnd, iEnd, vbEnter, iFormStart, iFormEnd , theFile
dim strDiv, mFormName, mFormValue, mFileName, mFileSize, mFilePath, iDivLen, mStr
Version="upload Version 1.0"
if Request.TotalByteslt ; 1 y luego salir de Sub
p>set Form=CreateObject("Scripting.Dictionary")
set File=CreateObject("S
scripting.Dictionary")
set upfile_Stream=CreateObject("Adodb.Stream")
upfile_Stream.mode=3
upfile_Stream.type=1
upfile_Stream.open
upfile_Stream.write Request.BinaryRead(Request.TotalBytes)
vbEnter=Chr(13)amp;Chr(10)
iDivLen=inString(1, vbEnter) 1
strDiv=subString(1, iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart, strDiv) -1
mientras iFormStart lt; iFormEnd
iStart=inString(iFormStart, "name=""")
iEnd=inString(iStart 6, "" "")
mFormName=subString(iStart 6, iEnd-iStart-6)
iFileNameStart=inString(iEnd 1, "filename=""")
si iFileNameStartgt;0 y iFileNameStartlt;iFormEnd entonces
iFileNameEnd=inString(iFileNameStart 10, """")
mFileName=subString(iFileNameStart 10, iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd 1, vbEnteramp; vbEnter)
iEnd=inString(iStart 4, vbEnteramp; strDiv)
si iEndgt entonces
mFileSize=iEnd-iStart-4
else
mFileSize=0
finalizar si
establecer theFile=new FileInfo
theFile.FileName=getFileName(mFileName)
theFile.FilePath=getFilePath(mFileName)
theFile.FileSize=mFileSize
theFile .FileStart=iStart 4
theFile.FormName=FormName
file.add mFormName, theFile
else
iStart=inString(iEnd 1, vbEnteramp; vbEnter)
iEnd=inString(es
tarta 4, vbEnteramp; strDiv)
si iEndgt; iStart entonces
mFormValue=subString(iStart 4, iEnd-iStart-4)
más
mFormValue=""
finaliza si
formulario.Añadir mFormName, mFormValue
finaliza si
iFormStart=iformEnd iDivLen
iFormEnd=inString(iformStart, strDiv)-1
wend
End Sub
Función privada subString(theStart, theLen)
dim i, c, stemp
upfile_Stream.Position=theStart-1
stemp=""
para i=1 a theLen
si upfile_Stream.EOS entonces salga para
c=ascB(upfile_Stream.Read(1))
Si c gt 127 Entonces
si upfile_Stream.EOS entonces salga para
stemp=stempamp;Chr(AscW(ChrB(AscB(upfile_Stream.Read(1)))amp;ChrB(c)))
i=i 1
else
stemp=stempamp;Chr(c)
Finalizar si
Siguiente
subString=stemp
Función final
Función privada enString(theStart, varStr)
dim i, j, bt, theLen, str
InString=0
Str=toByte(varStr)
theLen=LenB(Str)
para i=theStart to upfile_Stream.Size-theLen
si igt; upfile_Stream.size luego salga de la función
upfile_Stream.Position=i-1
si AscB(upfile_Stream.Read(1))=AscB(midB (Str, 1)) entonces
InString=i
para j=2 a theLen
si upfile_Stream.EOS entonces
inString =0
Salir para
finalizar si
si AscB(upfile_Stream.Read(1))lt;gt;AscB(MidB(Str,j,1 )) entonces
InString=0<
/p>
Salir para
finalizar si
siguiente
si InStringlt;gt;0 entonces Salir de la función
finalizar si
siguiente
Función final
Subclase privada_Terminar
formulario.RemoveAll
archivo.RemoveAll
establecer formulario=nada
establecer archivo=nada
upfile_Stream.close
configurar upfile_Stream=nada
End Sub
Función privada GetFilePath(FullPath)
Si FullPath lt;gt; "" Entonces
GetFilePath = left(FullPath, InStrRev(FullPath, "\"))
Else
GetFilePath = ""
Finalizar si
Finalizar función
Función privada GetFileName(FullPath)
Si FullPath lt;gt; "" Entonces
GetFileName = mid(FullPath, InStrRev(FullPath, "\") 1)
De lo contrario
GetFileName = ""
Finalizar si
Finalizar función
Función privada toByte(Str)
dim i,iCode , c, iBajo, iAlto
toByte=""
Para i=1 a Len(Str)
c=mid(Str, i, 1)
iCode =Asc(c)
Si iCodelt;0 Entonces iCode = iCode 65535
Si iCodegt entonces
iLow = Izquierda(Hex(Asc(c)), 2)
iAlto =Derecha(Hex(Asc(c)), 2)
toByte = toByte amp; H"amp; iLow) amp; chrB("amp; H"amp; iHigh)
Else
toByte = toByte amp; chrB(AscB(c))
Finalizar si
Siguiente
Finalizar función
Finalizar clase
Información de archivo de clase
dim FormName, Nombre de archivo, Ruta de archivo, Tamaño de archivo, Inicio de archivo
Subclase privada_Initializ
e
FileName = ""
FilePath = ""
FileSize = 0
FileStart= 0
FormName = ""
End Sub
Función pública SaveAs(FullPath)
dim dr, ErrorChar, i
SaveAs=1
si trim(fullpath)="" o FileSize=0 o FileStart=0 o FileName="" entonces salga de la función
si FileStart=0 o right(fullpath,1)=" /" luego salga de la función
set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
upfile_Stream.position=FileStart-1
upfile_Stream.copyto dr,FileSize
dr.SaveToFile FullPath,2
dr.Close
establecer dr=nada
SaveAs=0
finalizar función
finalizar clase
lt;/SCRIPTgt;