asp中上传图片

 

数据库表设计

USE [JxtDB]
GO
/****** 对象:  Table [dbo].[表名]    脚本日期: 10/31/2006 15:17:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[表名](
 [picid] [int] IDENTITY(1,1) NOT NULL,
 [teacherid] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
 [pic] [image] NULL,
 [submittime] [datetime] NOT NULL CONSTRAINT [DF_Teacher_Pic_submittime]  DEFAULT (getdate())
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
SET ANSI_PADDING OFF

 


<html>

<head>
<title>上传图片</title>
</head>
<body>
<form action="teainfoset_uploadaction.asp" method="post" enctype="multipart/form-data">
  <input type="file" name="imgurl">
  <input type="submit" name=ok value="上传图片">
</form>

</body>
</html>


'------------------后台写如程序-----------------

<%
response.buffer=true
'dim FileType
'FileType=".jpg/.gif"
   dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata
'   for each formName in upload.file''列出所有上传了的文件
'   set file=upload.file(formName)''生成一个文件对象
'   if file.FileName="" then '如果没有选择上传文件
'    response.write("<script>alert('请选择上传文件!');history.go(-1);</script>")
'    set file=nothing
'    response.end
'   end if
'   if Instr(FileType,GetExtendName(file.FileName))=0 or Instr(FileType,GetExtendName(file.FileName))="" then '文件为不允许的类型
'    response.write ("<script>alert('对不起,只能上传jpg与gif两种格式的照片!');history.back();</Script>")
'   response.end
'   end if
'   set file=nothing
   dim connGraph,rec
   formsize=request.totalbytes '指明要从客户端读取的数据量大小,这个值小于或者等于使用方法
   if formsize>1024*100 then
    response.write("<SCRIPT LANGUAGE='JavaScript'>alert('对不起,不能上传容量大于100K的照片!');history.go(-1);</SCRIPT>")
    response.end
   end if
   formdata=request.binaryread(formsize) '返回值保存着从客户端读取到数据
   bncrlf=chrB(13) & chrB(10)
   divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
   datastart=instrb(formdata,bncrlf & bncrlf)+4
   dataend=instrb(datastart+1,formdata,divider)-datastart
   mydata=midb(formdata,datastart,dataend)
   set connGraph=server.CreateObject("ADODB.connection")
   connGraph.ConnectionString="File Name=F:/connopen.udl"
   connGraph.Open
   set rec=server.createobject("ADODB.recordset")
   set rec1=server.createobject("ADODB.recordset")
   dim SQLstrpic
   SQLstrpic=""
   SQLstrpic="select * from dbo.jxt_teacher_pic where teacherid='" & userid & "'"
   rec1.open SQLstrpic,connGraph,1,1
   if rec1.eof then
    rec.Open "SELECT * FROM dbo.jxt_teacher_pic",connGraph,1,3
    rec.addnew
    rec("pic").appendchunk mydata
    rec("teacherid")=userid
    rec.update
    rec.close
   else
    SQLstrpic=""
    SQLstrpic="delete from dbo.jxt_teacher_pic where teacherid='" & userid & "'"
    rec.Open SQLstrpic,connGraph,1,3
    rec.Open "SELECT * FROM dbo.jxt_teacher_pic",connGraph,1,3
    rec.addnew
    rec("pic").appendchunk mydata
    rec("teacherid")=userid
    rec.update
    rec.close
   end if
   rec1.close()
   dim picid
   picid=""
   SQLstrpic=""
   SQLstrpic="select * from dbo.jxt_teacher_pic where teacherid='" & userid & "'"
   rec1.Open SQLstrpic,connGraph,1,1
   if rec1.eof then
    picid=""
   else
    picid=rec1("picid")
   end if
   rec1.close()
   set rec1=nothing
   set rec=nothing
   set connGraph=nothing
   response.write("<SCRIPT LANGUAGE='JavaScript'>opener.document.form1.value="&picid&";var viewarea=opener.document.getElementById('viewpic');viewarea.innerHTML='<img src=teainfoset_viewpic.asp?picid="&picid&" width=40>';window.close();</SCRIPT>")

'function GetExtendName(FileName)'取得文件扩展名
'  dim ExtName
'  ExtName = LCase(FileName)
'  ExtName = right(ExtName,3)
'  ExtName = right(ExtName,3-Instr(ExtName,"."))
'  GetExtendName = ExtName
'end function

‘-------------------读出图片程序-------------

<%
set connGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="File Name=F:/connopen.udl"
connGraph.Open
set rec=server.createobject("ADODB.recordset")
strsql="select pic from dbo.jxt_teacher_pic where picid='" & request("picid") & "'"
rec.open strsql,connGraph,1,3
Response.ContentType = "image/*"
Response.BinaryWrite rec("pic")
rec.close
set rec=nothing
set connGraph=nothing
%>

 SQL数据类型

数据类型
在 Microsoft? SQL Server? 中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、money 等等)的特性。SQL Server 提供系统数据类型集,定义了可与 SQL Server 一起使用的所有数据类型。下面列出系统提供的数据类型集。

可以定义用户定义的数据类型,其是系统提供的数据类型的别名。有关用户定义的数据类型的更多信息,请参见 sp_addtype 和创建用户定义的数据类型。

当两个具有不同数据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时:

通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定所得值的数据类型。有关更多信息,请参见数据类型的优先顺序。


如果结果数据类型为 char、varchar、text、nchar、nvarchar 或 ntext,则结果值的排序规则由排序规则的优先顺序规则决定。有关更多信息,请参见排序规则的优先顺序。


结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。有关更多信息,请参见精度、小数位数和长度。
SQL Server 为 SQL-92 兼容性提供了数据类型同义词。有关更多信息,请参见数据类型同义词。

精确数字
整数
bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。

smallint

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整数数据。

tinyint

从 0 到 255 的整数数据。

bit
bit

1 或 0 的整数数据。

decimal 和 numeric
decimal

从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。

numeric

功能上等同于 decimal。

money 和 smallmoney
money

货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。

smallmoney

货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。

近似数字
float

从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。

real

从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。

datetime 和 smalldatetime
datetime

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。

smalldatetime

从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。

字符串
char

固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

varchar

可变长度的非 Unicode 数据,最长为 8,000 个字符。

text

可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。

Unicode 字符串
nchar

固定长度的 Unicode 数据,最大长度为 4,000 个字符。

nvarchar

可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。

ntext

可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。

二进制字符串
binary

固定长度的二进制数据,其最大长度为 8,000 个字节。

varbinary

可变长度的二进制数据,其最大长度为 8,000 个字节。

image

可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。

其它数据类型
cursor

游标的引用。

sql_variant

一种存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。

table

一种特殊的数据类型,存储供以后处理的结果集。

timestamp

数据库范围的唯一数字,每次更新行时也进行更新。

uniqueidentifier

全局唯一标识符 (GUID)。

---------------------------------------------------------------------------------
控制字符      值
制表符        CHAR(9)
换行符        CHAR(10)
回车          CHAR(13)
---------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值