动态网站制作指南



当前位置 > 网站建设学院 > 网络编程 > ASP实例 Rss
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

无组件上传图片至SQLSERVER数据库


发表日期:2003-8-13


组件上传我刚试成功,所以提供代码给大家一起共享。

/*  addemployee.asp   */
<html>
<head>
<title>职工之家</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../CSS/site_css.css" type="text/css">
</head>

<script language="javascript">
<!--
 //选择分类
 ///////////////////////////////////////////////////////////////////////
 function selectsort(txtSubject){
   var returnValue
   returnValue=window.showModalDialog("selMode.htm",null,"center:1;status:0;help:0;resized:0;dialogheight:300px;dialogwidth:206px");
   if (returnValue!="" && returnValue!=null){
      txtSubject.value=returnValue
   }
 }
 ///////////////////////////////////////////////////////////////////////
 //合法性检查
 function isOK(thisForm){
   var strTemp,strValue,strLen,strExName
  if(thisForm.txtTitle.value==""){
      alert("提示:标题不能为空,请正确输入")
   thisForm.txtTitle.focus()
   return false
   }
   if(thisForm.txtSort.value==""){
      alert("提示:请正确选择分类")
   thisForm.txtSort.focus()
   return false
   }
   /*检查图片类型*/
   if(thisForm.file.value!=""){
      strTemp=thisForm.file.value
   strValue=strTemp.toLowerCase()
   strLen=strTemp.length
   strExName=strValue.substring(strLen-4,strLen)
   if (strExName!=".jpg" && strExName!=".gif"){
       alert("请选择jpg或者gif文件!")
    return false
   }
   return true
   }
 }
//-->
</script>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="1" topmargin="1">
<form name="form1" method="post" action="transact1.asp" enctype="multipart/form-data">
  <table border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td colspan="2" bgcolor="#006699" height="15">&nbsp;</td>
    </tr>
    <tr>
      <td class="textBlack">
        <div align="right">标题:</div>
      </td>
      <td>
        <input type="text" name="txtTitle" size="52" class="textarea">
      </td>
    </tr>
    <tr>
      <td class="textBlack">
        <div align="right">分类:</div>
      </td>
      <td>
        <input type="text" name="txtSort" size="35" class="textarea">
        <input type="button" name="Submit2" class="buttonSkid" onclick="selectsort(txtSort);">
      </td>
    </tr>
    <tr>
      <td class="textBlack" valign="top">
        <div align="right">正文:</div>
      </td>
      <td>
        <textarea name="txtContent" rows="15" cols="50" class="textarea"></textarea>
      </td>
    </tr>
    <tr>
      <td height="14" class="textBlack" valign="top">
        <div align="right">图片:</div>
      </td>
      <td height="14" class="textBlack">
        <div align="left">
          <input type="file" name="file" size="35" class="textarea">
        </div>
      </td>
    </tr>
    <tr>
      <td height="42" class="textBlack" valign="top">&nbsp;</td>
      <td height="42" class="textBlack" valign="middle">
        <p>1、您上传的图片大小请控制在<font color="#FF0000"><b>500K</b></font>以内,否则不允许上传<br>
          2、你上传的图片必须为<font color="#FF0000"><b>150*130象素</b></font><br>
          3、上传上传图片的格式为JPG或者GIF</p>
      </td>
    </tr>
    <tr>
      <td height="39" class="textBlack">&nbsp;</td>
      <td height="39" valign="middle">
        <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>
  </table>
</form>
</body>
</html>
*************************************************************************

/* transact1.asp*/
<!--#include file="../func/conn.inc"-->
<!--#include file="../func/fupload.inc"-->
<!--#include file ="../func/myfunctions.inc"-->
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
 Dim Fields
 Dim strTitle,strSort,strContent
 Dim rs,sSql
 Dim iMaxid
 Dim strMaxid
 Dim strlen    
 
 Set Fields = GetUpload()
 strTitle=BinaryToString(Fields("txtTitle").value)
 strSort=BinaryToString(Fields("txtSort").value)
 strContent=BinaryToString(Fields("txtContent").value)
 strSort=split(trim(strSort),"-")
 
 if instr(1,lcase(Fields("file").FileName),".jpg")=0 and instr(1,lcase(Fields("file").FileName),".gif")=0 then
    response.write "<script language='Javascript'>alert('上传的图片必须是gif或者jpg格式的图片')</script>"
 response.write "<script language='javascript'>window.location='addemployee.asp';</script>"
    Response.end
 end if

 if Fields("file").Length>500000 then
    response.write "<script language='javascript'>alert('只允许不大于500k的图片上传');</script>"
    response.write "<script language='javascript'>window.location='addemployee.asp';</script>"
 response.end
 end if

 '/*存至数据库*/
     if Fields("file").FileName<>"" then
     Set rs=Server.CreateObject("ADODB.Recordset")
  sSql="select * from employee order by id desc"
  rs.open sSql,conn,2,2
  if not rs.eof  then
           iMaxid=Clng(rs("id"))+1                    
           strlen=4-len(cstr(iMaxid))
           strMaxid=string(strlen,"0") & cstr(iMaxid)  
        else
           strMaxid="0001"                             
        end if
  rs.addnew
        rs("id")=strMaxid
        rs("title")=strTitle
  rs("sort")=strSort(0)
  rs("img").AppendChunk Fields("file").Value
  rs("content")=quoteChg(strContent)
  rs("todate")=date()
        rs.update
        rs.close
        response.write "<script language='javascript'>alert('添加记录成功')</script>"
  end if
end if
%>

**********************************************************************
/*fupload.inc*/

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
Dim UploadSizeLimit

'********************************** GetUpload **********************************
'.Name name of the form field (<Input Name="..." Type="File,...">)
'.ContentDisposition = Content-Disposition of the form field
'.FileName = Source file name for <input type=file>
'.ContentType = Content-Type for <input type=file>
'.Value = Binary value of the source field.
'.Length = Len of the binary data field
Function GetUpload()
Dim Result
Set Result = Nothing
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 'Request method must be "POST"
Dim CT, PosB, Boundary, Length, PosE
CT = Request.ServerVariables("HTTP_Content_Type") 'reads Content-Type header
'response.write CT
'application/x-www-form-urlencoded
If LCase(Left(CT, 19)) = "multipart/form-data" Then 'Content-Type header must be "multipart/form-data"
'This is upload request.
'Get the boundary and length from Content-Type header
PosB = InStr(LCase(CT), "boundary=") 'Finds boundary
If PosB > 0 Then Boundary = Mid(CT, PosB + 9) 'Separetes boundary
Length = CLng(Request.ServerVariables("HTTP_Content_Length")) 'Get Content-Length header
if "" & UploadSizeLimit<>"" then
UploadSizeLimit = clng(UploadSizeLimit)
if Length > UploadSizeLimit then
' on error resume next 'Clears the input buffer
' response.AddHeader "Connection", "Close"
' on error goto 0
Request.BinaryRead(Length)
Err.Raise 2, "GetUpload", "Upload size " & FormatNumber(Length,0) & "B exceeds limit of " & FormatNumber(UploadSizeLimit,0) & "B"
exit function
end if
end if

If Length > 0 And Boundary <> "" Then 'Are there required informations about upload ?
Boundary = "--" & Boundary
Dim Head, Binary
Binary = Request.BinaryRead(Length) 'Reads binary data from client

'Retrieves the upload fields from binary data
Set Result = SeparateFields(Binary, Boundary)
Binary = Empty 'Clear variables
Else
Err.Raise 10, "GetUpload", "Zero length request ."
End If
Else
Err.Raise 11, "GetUpload", "No file sent."
End If
Else
Err.Raise 1, "GetUpload", "Bad request method."
End If
Set GetUpload = Result
End Function

'********************************** SeparateFields **********************************
'This function retrieves the upload fields from binary data and retuns the fields as array
'Binary is safearray of all raw binary data from input.
Function SeparateFields(Binary, Boundary)
Dim PosOpenBoundary, PosCloseBoundary, PosEndOfHeader, isLastBoundary
Dim Fields
Boundary = StringToBinary(Boundary)

PosOpenBoundary = InstrB(Binary, Boundary)
PosCloseBoundary = InstrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary, 0)

Set Fields = CreateObject("Scripting.Dictionary")

Do While (PosOpenBoundary > 0 And PosCloseBoundary > 0 And Not isLastBoundary)
'Header and file/source field data
Dim HeaderContent, FieldContent
'Header fields
Dim Content_Disposition, FormFieldName, SourceFileName, Content_Type
'Helping variables
Dim Field, TwoCharsAfterEndBoundary
'Get end of header
PosEndOfHeader = InstrB(PosOpenBoundary + Len(Boundary), Binary, StringToBinary(vbCrLf + vbCrLf))

'Separates field header
HeaderContent = MidB(Binary, PosOpenBoundary + LenB(Boundary) + 2, PosEndOfHeader - PosOpenBoundary - LenB(Boundary) - 2)

'Separates field content
FieldContent = MidB(Binary, (PosEndOfHeader + 4), PosCloseBoundary - (PosEndOfHeader + 4) - 2)

'Separates header fields from header
GetHeadFields BinaryToString(HeaderContent), Content_Disposition, FormFieldName, SourceFileName, Content_Type

'Create one field and assign parameters
Set Field = CreateUploadField()
Field.Name = FormFieldName
Field.ContentDisposition = Content_Disposition
Field.FilePath = SourceFileName
Field.FileName = GetFileName(SourceFileName)
Field.ContentType = Content_Type
Field.Value = FieldContent
Field.Length = LenB(FieldContent)

Fields.Add FormFieldName, Field

'Is this ending boundary ?
TwoCharsAfterEndBoundary = BinaryToString(MidB(Binary, PosCloseBoundary + LenB(Boundary), 2))
'Binary.Mid(PosCloseBoundary + Len(Boundary), 2).String
isLastBoundary = TwoCharsAfterEndBoundary = "--"
If Not isLastBoundary Then 'This is not ending boundary - go to next form field.
PosOpenBoundary = PosCloseBoundary
PosCloseBoundary = InStrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary )
End If
Loop
Set SeparateFields = Fields
End Function

'********************************** Utilities **********************************
Function BinaryToString(str)
strto = ""
for i=1 to lenb(str)
if AscB(MidB(str, i, 1)) > 127 then
strto = strto & chr(Ascb(MidB(str, i, 1))*256+Ascb(MidB(str, i+1, 1)))
i = i + 1
else
strto = strto & Chr(AscB(MidB(str, i, 1)))
end if
next
BinaryToString=strto

End Function

Function StringToBinary(String)
Dim I, B
For I=1 to len(String)
B = B & ChrB(Asc(Mid(String,I,1)))
Next
StringToBinary = B
End Function

'Separates header fields from upload header
Function GetHeadFields(ByVal Head, Content_Disposition, Name, FileName, Content_Type)
Content_Disposition = LTrim(SeparateField(Head, "content-disposition:", ";"))
Name = (SeparateField(Head, "name=", ";")) 'ltrim
If Left(Name, 1) = """" Then Name = Mid(Name, 2, Len(Name) - 2)
FileName = (SeparateField(Head, "filename=", ";")) 'ltrim
If Left(FileName, 1) = """" Then FileName = Mid(FileName, 2, Len(FileName) - 2)
Content_Type = LTrim(SeparateField(Head, "content-type:", ";"))
End Function

'Separets one filed between sStart and sEnd
Function SeparateField(From, ByVal sStart, ByVal sEnd)
Dim PosB, PosE, sFrom
sFrom = LCase(From)
PosB = InStr(sFrom, sStart)
If PosB > 0 Then
PosB = PosB + Len(sStart)
PosE = InStr(PosB, sFrom, sEnd)
If PosE = 0 Then PosE = InStr(PosB, sFrom, vbCrLf)
If PosE = 0 Then PosE = Len(sFrom) + 1
SeparateField = Mid(From, PosB, PosE - PosB)
Else
SeparateField = Empty
End If
End Function

'Separetes file name from the full path of file
Function GetFileName(FullPath)
Dim Pos, PosF
PosF = 0
For Pos = Len(FullPath) To 1 Step -1
Select Case Mid(FullPath, Pos, 1)
Case "/", "\": PosF = Pos + 1: Pos = 0
End Select
Next
If PosF = 0 Then PosF = 1
GetFileName = Mid(FullPath, PosF)
End Function
</SCRIPT>
<SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT>
//The function creates Field object.
function CreateUploadField(){ return new uf_Init() }
function uf_Init(){
this.Name = null
this.ContentDisposition = null
this.FileName = null
this.FilePath = null
this.ContentType = null
this.Value = null
this.Length = null
}
</SCRIPT>

关注此文的读者还看过:
·2012-5-21 15:33:19 ASP连接执行程序 
·2012-5-21 15:31:45 用ASP建立邮件列表
·2012-5-21 15:31:12 制作我们自己的Ebay(拍卖系统)(6)
·2012-5-21 15:30:27 用ASP+实现一个简单的计算器(适合入门者)
·2012-5-21 15:28:24 一个把数字转英文的实用程序
·2012-5-21 15:22:47 用ASP.NET构建完整E-mail发送系统 
·2012-5-21 15:19:25 ASP生成Word文档的又一方法
·2012-5-21 15:19:16 经典的分页完整程序+注释
·2012-5-21 15:18:29 将你的网站设置为客户的信任站点--WSH方案
站长推荐 PS笔刷下载 在线翻译 系统进程 广告代码
  发表评论
姓 名: 验证码:
内 容:
教程搜索服务
ASP源码推荐
·草原好友圈 v1.0
·98BK自助友情连接系统 v3.0 修正
·张桢网络记事本
·银色月光日记本 多用户音乐版
·下单王在线图文下单系统 v3.0
·乐彼日文网店系统(56770 EShop)
·Lirong 网络办公系统 2006 企业
·商奇主机评测系统商业版 v2.1 S
·天府信息港 2005 完整版
·动网论坛Dvbbs v8.1 build 1119
·XYGBK 留言板 v2.0
·一个多学校OA办公系统(独有的)f
项目外包信息
·汽车配件网站制作 50000元
·整站SEO优化
·课件门户网程序
·求长期合作网站设计制作高手
·公司网站重新改版 8000元
·asp企业网站小改动
·网站flash片头
·文化传播公司网站设计稿
·UI界面设计
·产品外观改版设计 15000元
·照明灯具网站设计 10000元
·求长期合作网站设计制作高手
·做B2C网站 20000元
·Android或QT软硬件平台设计(工
·网站首页FLASH
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<ASP实例>的内容


网络编程文章分类
ASP教程
ASP实例
ASP技巧
ASP文摘
PHP教程
PHP技巧
PHP实例
PHP文摘
JSP教程
JSP技巧
JSP实例
JSP文摘
ASP.NET教程
ASP.NET技巧
ASP.NET实例
ASP.NET应用
xml教程
xsl教程
xml技巧
C#教程
C#应用
Delphi教程
Perl教程
Shell教程
Ajax教程
Visual Basic教程
Java教程
J2EE/J2ME教程
C/C++教程
移动解决方案
移动短信技术
移动行业动态
软件工程
WordPress
Android开发
站长工具:Google PR查询|Alexa排名查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|理财工具|黄金价格|购房银行按揭利率计算|汇率查询|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索|酒店预订|机票预订
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2012 www.knowsky.com All rights reserved | 沪ICP备05001343号