Intenté cargar componentes sin componentes con éxito, así que proporciono el código para compartir con todos.
/* addemployee.asp */
<html>
<cabeza>
<title>Casa del personal</title>
<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
<enlace rel="hoja de estilo" href="../css/site_css.css" tipo="texto/css">
</head>
<script language="javascript">
<!--
//selecciona categoría
////////////////////////////////////////////////// /// ////////////////////////
función seleccionarsort(txtSubject){
var valor de retorno
returnValue=window.showModalDialog("selMode.htm",null,"center:1;status:0;help:0;resized:0;dialogheight:300px;dialogwidth:206px");
si (valorretorno!="" && valorretorno!=null){
txtSubject.value=valorderetorno
}
}
////////////////////////////////////////////////// /// ////////////////////////
//Verificación de legalidad
la función está bien (este formulario) {
var strTemp,strValue,strLen,strExNombre
if(thisForm.txtTitle.value==""){
alert("Consejo: El título no puede estar vacío, ingréselo correctamente")
thisForm.txtTitle.focus()
devolver falso
}
if(thisForm.txtSort.value==""){
alert("Consejo: seleccione la categoría correcta")
thisForm.txtSort.focus()
devolver falso
}
/*Comprueba el tipo de imagen*/
if(esteForm.archivo.valor!=""){
strTemp=esteForm.archivo.valor
strValue=strTemp.toLowerCase()
strLen=strTemp.longitud
strExName=strValue.substring(strLen-4,strLen)
si (strExName!=".jpg" && strExName!=".gif"){
alerta ("¡Por favor seleccione un archivo jpg o gif!")
devolver falso
}
devolver verdadero
}
}
//-->
</script>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="1" topmargin="1">
<nombre del formulario="form1" método="post" acción="transact1.asp" enctype="multipart/form-data">
<table border="0" cellspace="0" cellpadding="0">
<tr>
<td colspan="2" bgcolor="#006699" height="15"> </td>
</tr>
<tr>
<td class="textNegro">
<div align="right">Título:</div>
</td>
<td>
<tipo de entrada="texto" nombre="txtTitle" tamaño="52" clase="textarea">
</td>
</tr>
<tr>
<td class="textNegro">
<div align="right">Categoría:</div>
</td>
<td>
<tipo de entrada="texto" nombre="txtSort" tamaño="35" clase="textarea">
<tipo de entrada="botón" nombre="Submit2" clase="botónSkid" onclick="selectsort(txtSort);">
</td>
</tr>
<tr>
<td class="textBlack" valign="arriba">
<div align="right">Texto:</div>
</td>
<td>
<textarea name="txtContent" rows="15" cols="50" class="textarea"></textarea>
</td>
</tr>
<tr>
<td height="14" class="textBlack" valign="arriba">
<div align="right">Imagen:</div>
</td>
<td height="14" class="textNegro">
<div align="izquierda">
<tipo de entrada="archivo" nombre="archivo" tamaño="35" clase="textarea">
</div>
</td>
</tr>
<tr>
<td height="42" class="textBlack" valign="top"> </td>
<td height="42" class="textBlack" valign="middle">
<p>1. Controla el tamaño de las imágenes que subes dentro de <font color="#FF0000"><b>500K</b></font>; de lo contrario, no se permitirá la carga<br>
2. La imagen que subas debe tener <font color="#FF0000"><b>150*130 píxeles</b></font><br>
3. Sube la imagen cargada en formato JPG o GIF</p>
</td>
</tr>
<tr>
<td height="39" class="textBlack"> </td>
<td altura="39" valign="medio">
<div align="center"><img src="../images/save.gif" width="85" height="19" onClick="if(isOK(form1)){form1.submit()}" >
<img src="../images/close.gif" width="85" height="19" onClick="self.close();" >>div>
</td>
</tr>
</tabla>
</formulario>
</cuerpo>
</html>
************************************************** * ***********************
/* transact1.asp*/
<!--#include file="../func/conn.inc"-->
<!--#include file="../func/fupload.inc"-->
<!--#include file="../func/misfunciones.inc"-->
<%
Si Request.ServerVariables("REQUEST_METHOD") = "POST" Entonces
Campos oscuros
Dim strTitle,strSort,strContent
Dim rs, sql
iMaxid tenue
Dim strMaxid
tenue strlen
Establecer campos = GetUpload()
strTitle=BinaryToString(Campos("txtTitle").valor)
strSort=BinaryToString(Campos("txtSort").valor)
strContent=BinaryToString(Campos("txtContent").valor)
strSort=dividir(recortar(strSort),"-")
si instr(1,lcase(Fields("file").FileName),".jpg")=0 e instr(1,lcase(Fields("file").FileName),".gif")=0 entonces
Response.write "<script language='javascript'>alert('Las imágenes cargadas deben estar en formato gif o jpg')</script>"
respuesta.write "<script language='javascript'>window.location='addemployee.asp';</script>"
Respuesta.fin
finalizar si
Campos ("archivo"). Longitud> 500000 entonces
Response.write "<script language='javascript'>alert('Sólo se permiten cargar imágenes que no superen los 500k');</script>"
respuesta.write "<script language='javascript'>window.location='addemployee.asp';</script>"
respuesta.fin
end if
'/*Guardar en la base de datos*/
si Campos ("archivo"). Nombre de archivo <> "" entonces
Establecer rs=Server.CreateObject("ADODB.Recordset")
sSql="seleccione * del pedido de los empleados por id desc"
rs.open sSql,conexión,2,2
si no rs.eof entonces
iMaxid=Clng(rs("id"))+1
strlen=4-len(cstr(iMaxid))
strMaxid=cadena(strlen,"0") & cstr(iMaxid)
demás
strMaxid="0001"
terminar si
rs.añadirnuevo
rs("id")=strMaxid
rs("título")=strTítulo
rs("ordenar")=strOrdenar(0)
rs("img").AppendChunk Fields("archivo").Valor
rs("contenido")=quoteChg(strContenido)
rs("todate")=fecha()
rs.actualización
rs.cerrar
Response.write "<script language='javascript'>alert('Agregar registro correctamente')</script>"
terminar si
terminar si
%>
************************************************* **********************
/*fupload.inc*/
<SCRIPT RUNAT=IDIOMA DEL SERVIDOR=VBSCRIPT>
Dim UploadSizeLimit
'************************************ GetUpload ************ **********************
'.Nombre nombre del campo del formulario (<Input Name="..." Type="File,...">)
'.ContentDisposition = Contenido-Disposición del campo del formulario
'.FileName = Nombre del archivo fuente para <tipo de entrada=archivo>
'.ContentType = Tipo de contenido para <tipo de entrada=archivo>
'.Value = Valor binario del campo fuente.
'.Length = Len del campo de datos binarios
Función ObtenerCargar()
Resultado oscuro
Establecer resultado = Nada
Si Request.ServerVariables("REQUEST_METHOD") = "POST" Entonces 'el método de solicitud debe ser "POST"
Dim CT, PosB, Límite, Longitud, PosE
CT = Request.ServerVariables("HTTP_Content_Type") 'lee el encabezado Content-Type
'respuesta.escribir CT
'aplicación/x-www-formulario-urlencoded
Si LCase(Left(CT, 19)) = "multipart/form-data" Entonces 'el encabezado del tipo de contenido debe ser "multipart/form-data"
'Esta es la solicitud de carga.
'Obtiene el límite y la longitud del encabezado Content-Type
PosB = InStr(LCase(CT), "boundary=") 'Encuentra el límite
Si PosB > 0 Entonces Límite = Mid(CT, PosB + 9) 'Límite separado
Longitud = CLng(Request.ServerVariables("HTTP_Content_Length")) 'Obtener encabezado de longitud del contenido
si "" & UploadSizeLimit<>"" entonces
SubirTamañoLimit = clng(SubirTamañoLimit)
si Longitud > UploadSizeLimit entonces
'en caso de error, reanudar siguiente 'Borra el búfer de entrada
'respuesta.AddHeader "Conexión", "Cerrar"
' en caso de error ir a 0
Solicitud.BinaryRead(Longitud)
Err.Raise 2, "GetUpload", "Tamaño de carga" & FormatNumber(Length,0) & "B excede el límite de" & FormatNumber(UploadSizeLimit,0) & "B"
función de salida
terminar si
end if
Si Longitud > 0 Y Límite <> "" Entonces '¿Hay información requerida sobre la carga?
Límite = "--" & Límite
Cabeza tenue, binario
Binary = Request.BinaryRead(Length) 'Lee datos binarios del cliente
'Recupera los campos de carga de datos binarios
Establecer resultado = campos separados (binario, límite)
Binario = Vacío 'Borrar variables
Demás
Err.Raise 10, "GetUpload", "Solicitud de longitud cero".
Terminar si
Demás
Err.Raise 11, "GetUpload", "No se envió ningún archivo".
Terminar si
Demás
Err.Raise 1, "GetUpload", "Método de solicitud incorrecto".
Terminar si
Establecer GetUpload = Resultado
Función final
'************************************ Campos separados *********** **********************
'Esta función recupera los campos cargados de datos binarios y devuelve los campos como una matriz
'Binary es una matriz segura de todos los datos binarios sin procesar de la entrada.
Función Campos Separados(Binario, Límite)
Dim PosOpenBoundary, PosCloseBoundary, PosEndOfHeader, isLastBoundary
Campos oscuros
Límite = StringToBinary(Límite)
PosOpenBoundary = InstrB(Binario, Límite)
PosCloseBoundary = InstrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary, 0)
Establecer campos = CreateObject("Scripting.Dictionary")
Hacer mientras (PosOpenBoundary > 0 y PosCloseBoundary > 0 y no isLastBoundary)
'Datos del campo de encabezado y archivo/fuente
Contenido de encabezado tenue, contenido de campo
'Campos de encabezado
Dim Content_Disposition, FormFieldName, SourceFileName, Content_Type
'Variables de ayuda
Campo oscuro, TwoCharsAfterEndBoundary
'Obtener el final del encabezado
PosEndOfHeader = InstrB(PosOpenBoundary + Len(Boundary), Binary, StringToBinary(vbCrLf + vbCrLf))
'Separa el encabezado del campo
HeaderContent = MidB(Binary, PosOpenBoundary + LenB(Boundary) + 2, PosEndOfHeader - PosOpenBoundary - LenB(Boundary) - 2)
'Separa el contenido del campo
FieldContent = MidB(Binary, (PosEndOfHeader + 4), PosCloseBoundary - (PosEndOfHeader + 4) - 2)
'Separa los campos de encabezado del encabezado
GetHeadFields BinaryToString(HeaderContent), Content_Disposition, FormFieldName, SourceFileName, Content_Type
'Crea un campo y asigna parámetros
Establecer campo = CreateUploadField()
Campo.Nombre = Nombre de campo de formulario
Field.ContentDisposition = Contenido_Disposición
Field.FilePath = NombreDeArchivoFuente
Field.FileName = GetFileName(SourceFileName)
Campo.ContentType = Tipo_Contenido
Campo.Valor = Contenido del campo
Field.Length = LenB(FieldContent)
Fields.Add FormFieldName, Field
'¿Es este el límite final?
TwoCharsAfterEndBoundary = BinaryToString(MidB(Binary, PosCloseBoundary + LenB(Boundary), 2))
'Binary.Mid(PosCloseBoundary + Len(Boundary), 2).String
isLastBoundary = TwoCharsAfterEndBoundary = "--"
Si no esLastBoundary Entonces 'Este no es el límite final; vaya al siguiente campo del formulario.
PosOpenBoundary = PosCerrarLímite
PosCloseBoundary = InStrB(PosOpenBoundary + LenB(Límite), Binario, Límite)
Terminar si
Bucle
Establecer campos separados = campos
Función final
'************************************ Utilidades *********** **********************
Función BinaryToString(cadena)
strto = ""
para i=1 a lenb(cadena)
si AscB(MidB(str, i, 1)) > 127 entonces
strto = strto & chr(Ascb(MidB(cadena, i, 1))*256+Ascb(MidB(cadena, i+1, 1)))
yo = yo + 1
demás
strto = strto & Chr(AscB(MidB(cadena, i, 1)))
terminar si
próximo
BinaryToString=strto
Función final
Función StringToBinary(String)
Oscuro I,B
Para I=1 a len(String)
B = B y ChrB(Asc(Medio(Cadena,I,1)))
Próximo
CadenaABinario = B
Función final
'Separa los campos del encabezado del encabezado de carga
Función GetHeadFields (ByVal Head, Content_Disposition, Nombre, FileName, Content_Type)
Content_Disposition = LTrim(SeparateField(Head, "content-disposition:", ";"))
Nombre = (SeparateField(Head, "nombre=", ";")) 'ltrim
Si Izquierda(Nombre, 1) = """" Entonces Nombre = Medio(Nombre, 2, Len(Nombre) - 2)
Nombre de archivo = (SeparateField(Head, "nombre de archivo=", ";")) 'ltrim
Si Left(FileName, 1) = """" Entonces FileName = Mid(FileName, 2, Len(FileName) - 2)
Content_Type = LTrim(SeparateField(Head, "tipo de contenido:", ";"))
Función final
'Separa un archivo entre sStart y sEnd
Función CampoSeparado(Desde, ByVal sStart, ByVal sEnd)
Atenuar PosB, PosE, sFrom
sDe = LCaso(De)
PosB = InStr(sDesde, sInicio)
Si PosB > 0 entonces
PosB = PosB + Len(sInicio)
PosE = InStr(PosB, sFrom, enviar)
Si PosE = 0 Entonces PosE = InStr(PosB, sFrom, vbCrLf)
Si PosE = 0 Entonces PosE = Len(sFrom) + 1
CampoSeparado = Medio(Desde, PosB, PosE - PosB)
Demás
CampoSeparado = Vacío
Terminar si
Función final
'Separa el nombre del archivo de la ruta completa del archivo
Función ObtenerNombreDeArchivo(RutaCompleta)
Pos tenue, PosF
PosF = 0
Para Pos = Len (ruta completa) a 1 paso -1
Seleccione Caso Medio (Ruta Completa, Pos, 1)
Caso "/", "": PosF = Pos + 1: Pos = 0
Finalizar selección
Próximo
Si PosF = 0 Entonces PosF = 1
GetFileName = Medio (Ruta completa, PosF)
Función final
</SCRIPT>
<SCRIPT RUNAT=IDIOMA DEL SERVIDOR=JSCRIPT>
//La función crea el objeto Campo.
función CreateUploadField(){ devolver nuevo uf_Init() }
función uf_Init(){
this.Name = nulo
this.ContentDisposition = nulo
this.FileName = nulo
this.FilePath = nulo
this.ContentType = nulo
this.Value = nulo
this.Longitud = nulo
}
</SCRIPT>