- 热门文章:
- · 二级域名原理以及程序,申请即可开通
- · Java学习过程的一些重点
- · Oracle9i中如何建立不同字符集的数据库
- · 修复SQL Server 2000数据库之实战经验
- · 使用ASP生成HTML文件
- · 编写安全的ASP代码
- · 十天学会ASP.net(2)
- · 十天学会ASP.net(1)
- · 十天学会php(2)
- · 十天学会php(1)
- · 三天学好ADO
- · 在数据库中存取文件
上一篇:W3 Jmail中文使用说明 >>
无组件上传图片到数据库中,最完整解决方案
:::::: 在sql2000,2000s中测试通过::::::::
:::::::联系我:qq:21112856,email:yangzinet@hotmail.com:::::::::
::::::: http://www.tingfo.net ::::::
up.htm
<!--#include file="inc/domin.asp"-->
<!--#include file="conn.asp"-->
<html>
<head>
<title><% =webname %></title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="main.css" type="text/css">
<style type="text/css">
<!--
.tx1 { height: 20px; width: 30px; font-size: 9pt; border: 1px solid; border-color: black black
#000000; color: #0000ff}
-->
</style>
<script language="javascript">
<!--
var bgc_on=new array("#74d738","#ff9c17","#3278ab","#486177","#078c00","#007eca")
var bgc_off=new array("#4cad12","ffb859","5f9fd0","577590","08a700","009fff")
function turnon(obj1,id){
obj1.style.background=bgc_on[id];
}
function turnoff(obj1,id){
obj1.style.background=bgc_off[id];
}
//-->
</script>
<script language=javascript>
function check_input()
{
if (frm.pic.value=="")
{ alert("请选择要上传的图片");
return false;
}
if (frm.type.value=="")
{ alert("请选择图片类型");
return false;
}
if (frm.thetext.value=="")
{ alert("请输入照片说明");
return false;
}
return true;
}
</script>
</head>
<body bgcolor="#555555" text="#000000" leftmargin="0" topmargin="0">
<table width=755 cellpadding=0 cellspacing=0 border=0 bgcolor=#ffffff align="center">
<tr>
<td height=100><img src="img/top.gif" align="top">
</table>
<!--#include file="inc/mulu.asp"-->
<table width=755 cellpadding=0 cellspacing=0 border=0 bgcolor=#ffffff align="center" bordercolor=#000000>
<tr>
<td height=400 width=180 bgcolor=#d1e9d5 style="border-right: 1px #0e801e solid">
<table width=100% height=100% cellpadding=0 cellspacing=0 border=0 align="center" bordercolor=#000000>
<tr><td height=30 align="center" class=l15><font color=#e96d08>欢迎你:<% =username %> 管理中心</font>
<tr><td height=23 align="center" class=l15 bgcolor=#4cad12 style="border-top:0px #0e801e solid; border-bottom:1px #0e801e solid;"><font color=#c2f009 class=yinying>管 理 中 心</font>
<tr><td height=20 class=l13>
<!--#include file="inc/centermulu.asp"-->
<tr><td height=5>
<tr><td>
</table>
<td>
<%
set rs=server.createobject("adodb.recordset")
sql="select * from photo where author="&username&""
rs.open sql,conn,1,1
%>
<table cellpadding=0 cellspacing=0 border=0 width=100% height=100%>
<tr><td height=3>
<tr><td height=3 bgcolor=#ffffff background=img/bj3.gif>
<tr><td height=20 valign="bottom" bgcolor=#eeeeee> 现在位置: 98243班 - 管理中心 - 添加新闻
<tr><td height=3 bgcolor=#eeeeee style="border-bottom: 1px #cccccc solid"><p style="font-size:1pt">
<tr><td height=20 valign="bottom"> <font color=green><% =username %>:你一共上传了 <font color=red><% =rs.recordcount %></font> 张照片</font> <a href="adminphoto.asp"><font color=red><u>管理以前上传的照片</u></font></a>
<tr><td bgcolor=#ffffff valign=top>
<table cellpadding=0 cellspacing=0 border=0 width=95% height=100% align="center">
<form action=addphoto.asp method=post name=frm onsubmit="return check_input()" enctype="multipart/form-data">
<tr><td height=20 colspan=2>
<tr><td height=25 width=15% align="right" class=l13>选择照片: <td> <input name="pic" type="file" class="tx1" style="width:300"> <font color=red>拒绝色情、写真图等</font>
<tr><td height=25 width=20% align="right" class=l13>照片分类: <td> <select name="type">
<option selected value="">选择类型</option>
<option value="班级合影">班级合影</option>
<option value="个人照片">个人照片</option>
<option value="恩师照片">恩师照片</option>
<option value="情人照片">情人照片</option>
<option value="友人照片">友人照片</option>
<option value="其他照片">其他照片</option>
</select>
<tr><td height=25 width=20% align="right" class=l13>照片说明: <td> <textarea name="thetext" cols="46" rows="7" style="border:1px double rgb(88,88,88);font:9pt">
</textarea> <font color=red>最多20个字符</font>
<tr><td height=5 colspan=2>
<tr><td height=25 colspan=2 align="center">
<input type="submit" name="submit" value=" 提 交 " style="border:1px double rgb(88,88,88);font:9pt">
<input type="reset" name="reset" value=" 重 写 " style="border:1px double rgb(88,88,88);font:9pt">
<tr><td colspan=2>
</tr></form>
</table>
</table>
</table>
<!--#include file="inc/footer.asp"-->
</body>
</html>
fupload.inc
<script runat=server language=vbscript>
限制上传图片大小
dim uploadsizelimit
********************************** 得到上传数据 **********************************
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
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
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>
addphoto.asp
<!--#include file="conn.asp"-->
<!--#include file="inc/domin.asp"-->
<!--#include file="fupload.inc"-->
<%
if request.servervariables("request_method") = "post" then
dim fields
uploadsizelimit=100000
set fields = getupload()
dim field
for each field in fields.items
select case field.name
case "thetext" sss=binarytostring(field.value)
case "type" fff=binarytostring(field.value)
case "submit" submit=binarytostring(field.value)
case "pic"
filename=field.filename
filecontenttype=field.contenttype
filevalue=field.value
end select
next
---------------
if filename<>"" and filecontenttype<>"image/gif" and
filecontenttype<>"image/pjpeg" then
%>
<center>
<br><br>
<font color=red size=3>上传的照片应该为gif或jpg文件!</font><br><br>
<input type="button" value="重填" onclick="history.go( -1 );return
true;">
</center>
<%
else
------------
开始输入
-----------
response.write sss
response.write"<br>"
response.write fff
set rs=server.createobject("adodb.recordset")
sql = "select * from tb where theid is null"
rs.open sql,conn,3,3
rs.addnew
rs("author")=username
rs("thetext")=sss
rs("types")=fff
rs("hits")=1
rs("posttime")=now()
rs("photo").appendchunk filevalue
rs.update
rs.close
%>
<br><br>
<center><font color=red
size=3>成功输入个人基本档案!</font><br><br><form method="post"
action="personinf.asp"><input type="submit" value="返回"></form>
</center>
<%
end if
end if
%>
showpic.asp
<!--#include file="conn.asp"-->
<%
id=request("id")
set rs=server.createobject("adodb.recordset")
sql="select * from tb where theid="&id
rs.open sql,conn,1,3
response.contenttype="image/gif"
response.binarywrite rs("photo")
%>
()
下一篇:二级域名原理以及程序,申请即可开通 >>
相关文章:
- · 解决大字段在Form中Post出错的方法
- · 利用ASP+JMAIL进行邮件群发的新思路
- · 关于处理GET方式提交的含有特殊字符的参数
- · 关于Adodb.Stream 的使用说明
- · 多文件多文本框上传程序
- · 让妙客家标准版使用 SQL Server 数据库后台
- · 关于用SQL SERVER2000建立分布式网站系统的认识
- · 使用SQLSERVER的扩展存储过程实现远程备份与恢复
- · MySQL数据库类的定义
- · SQL语句导入导出大全
- · SQL Server的用户及权限
- · 深入理解C语言指针的奥秘
- · VC快捷键大全
- · 简体中文编码对应器
- · WEB打印大全
- · 用ASP实现远程批量文件改名
- · 想深入学习SQL injection的人这个可要好好看看
- · 用PHP创建PDF中文文档
- · PHP生成带有雪花背景的验证码
- · 用PHP和MySQL保存和输出图片
- · 拼音码表的生成
- · 一个odbc连mssql分页的类
- · 用PHP动态创建Flash动画
- · 如何使用PHP获取网络上文件
- · 新浪新闻小偷
- · PHP中路径问题的解决方案
- · 一个可查询所有表的“通用”查询分页类
- · xml 解析类
- · 用PHP制作静态网站的模板框架
- · 一个目录遍历函数
- · 用Socket发送电子邮件
- · PHP树的代码,可以嵌套任意层
- · MYSQL的操作类(修改后的新版本)
- · 使用PHP DOM-XML创建和解析XML文件
- · 在 PHP 中用描点法“绘制”中文
- · 编写自己的php扩展函数
- · PHP输出控制功能在简繁体转换中的应用
- · PHP 中执行系统外部命令
