怎样将上传的文件上传到服务器指定的目录下,并在上传时修改上传文件的名称?(源码)

liuxingyi 2003-10-20 05:26:12
怎样将上传的文件上传到服务器指定的目录下,并在上传时修改上传文件的名称?
...全文
688 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyuewanqian 2003-10-21
  • 打赏
  • 举报
回复
关注
foglee 2003-10-21
  • 打赏
  • 举报
回复
无组件上传的最大弱点:占用系统资源很夸张,如果文件稍大一点上传起来就很困难了。我建议还是用组件来上传!你到网上找找吧,很多的,Yousoft我一直在用。
whb147 2003-10-21
  • 打赏
  • 举报
回复
一般的文件上传都是自动生成文件名,如果你要改动,也可以,你需要改程序,
化境上传就很不错了。
srj911 2003-10-21
  • 打赏
  • 举报
回复
up
孟子E章 2003-10-20
  • 打赏
  • 举报
回复
搜索
无组件上传
有许多这样的例子了,
sinusoid 2003-10-20
  • 打赏
  • 举报
回复
上传处理的后台页:


<!-- #include file="conn.asp" -->
<!--#include file="upload_5xSoft.asp"-->
<!-- #include file="md5.asp" -->
<%
dim upload,picfile
set upload=new upload_5xSoft '建立上传对象
set picfile=upload.file("file") '上传图片


'----------------验证开始
'禁止从站点外部提交数据
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
errmsg=errmsg& "你提交的路径有误,禁止从站点外部提交数据!"
end if

if picfile.FileSize>102400 Then '限制文件大小 100K之内
errmsg=errmsg&"文件大小不能超过100K"
End If

'判断用户存在否.
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select name from users where name='"&upload.form("name")&"'"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
errmsg=errmsg&"该用户已经存在,请换个用户名."
end if
rs.close
set rs=nothing

if errmsg<>"" then
Response.Write("<script language='javascript'>alert('"+errmsg+"');history.go(-1);</script>")
Response.end
end if
'----------------验证结束,更新数据库

'更新用户资料表
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "users",conn,1,3
rs.addnew
rs("name")=upload.form("name")
rs("pass")=md5(upload.form("password"))
rs("question")=upload.form("question")
rs("answer")=md5(upload.form("answer"))
rs("oicq")=upload.form("oicq")
rs("regip")=Cstr(Request.ServerVariables("remote_host"))
rs("regtime")=date()
rs.update
rs.close
set rs=nothing


if picfile.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
'更新相册表
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "photo",conn,1,3
rs.addnew
rs("name")=upload.form("name")
rs("photoname")=picfile.filename
rs("shuoming")=upload.form("shuoming")

filenameend=picfile.filename
filenameend=split(filenameend,".")
ext=ucase(filenameend(ubound(filenameend))) '取扩展名
if ext="GIF" or ext="JPG" or ext="JPEG" then
randomize
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&"_"&int(rnd*1000)&"."
filename=filename&ext '产生随机文件名,格式为:当前系统的时间+(0~1000)的随机数
savedfile="uppic/"&filename
rs("photo")=savedfile '路径存数据库
picfile.saveAs Server.mappath(savedfile) '存于uppic/目录下
else
response.write "文件格式不对"
end if
set picfile=nothing
rs.update
rs.close
set rs=nothing
set upload=nothing
end if
%>
<table background="images/dw.gif" width="200" align="center" cellpadding=5>
<TR align="center">
<TD background="images/pointdot.gif" height="1" colspan=2></TD>
</TR>
<tr align="center"><Td colspan=2>

<%
if savedfile<>"" then
response.write "<p align=center>"
response.write "<a href="&savedfile&" target=_blank>点击这里查看上传的图片</a>"
response.write "</p>"
end if
session("user")=upload.form("name")
output= "<script language=javascript> function redirect() { document.location='index.asp'} setTimeout(redirect,5000) </script> " & "注册成功...<br> 五秒后自动登录!"
Response.Write output
%>

</td></tr>
<TR align="center">
<TD background="images/pointdot.gif" height="1" colspan=2></TD>
</TR>
</table>
sinusoid 2003-10-20
  • 打赏
  • 举报
回复
下面是我写的图片文本上传例子:

假定照片上传到/uppic/目录下

两包含文件:
<!--#include file="upload_5xSoft.asp"-->'稻香老农的无组件上传类
<!-- #include file="md5.asp" --> 'md5加密函数

涉及数据库的两张表结构如下:

表users:

字段 数据类型 说明
id 自动编号
name 文本 用户名
pass 文本 密码
question 文本 问题
answer 文本 答案
regip 文本 注册ip
oicq 文本
regtime 日期/时间 注册时间

表photo
id 自动编号
name 文本 用户名和表users关联用
photo 文本 图片路径
photoname 文本 图片名称
shuoming 文本 图片说明
time 日期/时间 图片上传时间 设为now()

'--------------------------------------------
'传的前台页
<html>
<head>
<script language="JavaScript">
<!--
function checkdata() {

if( form.name.value.Trim() ==""){alert("\请输入用户名");form.name.focus();return false;}

if( form.password.value.Trim() =="" || form.password1.value.Trim() ==""){
alert("\请输入密码");
if (form.password.value.Trim()==""){
form.password.focus();
}
else{
form.password1.focus();
}
return false;
}
if( form.password1.value !=form.password.value) {
alert("\密码要求一致")
form.password.focus();
return false;
}
if( form.question.value.Trim() ==""){alert("\请输入提示问题,找回密码用.");form.question.focus();return false;}
if( form.answer.value.Trim() ==""){alert("\请输入提示答案,找回密码用.");form.answer.focus();return false;}
return true;
}


function mysubmit(theform)
{
if(theform.file.value!=""){
str= theform.file.value;
strs=str.toLowerCase();
lens=strs.length;
extname=strs.substring(lens-4,lens);
if(extname!=".jpg" && extname!=".gif"){
alert("请选择jpg或gif文件!");
theform.file.select();
document.execCommand('delete')
return (false);
}
}
return (true);
}

function String.prototype.Trim(){return this.replace(/(^\s*)|(\s*$)/g,'')}//自定义去空格函数Trim()
-->
</script>
</head>
<body>
<form name="form" method="post" action="regsave.asp" onSubmit="return checkdata()" enctype="multipart/form-data">

<table background="images/dw.gif" width="200" align="center">

<tr align="center"><Td colspan=2><B>用 户 注 册</b>
</td></tr>
<tr><Td width="70" align="right">
用 户 名:</td><td><INPUT TYPE="text" NAME="name" size="10" class=text maxlength="10"><font color="#FF0000">*</font>
</td></tr>
<tr><td width="70" align="right">
用户密码:</td><td><INPUT TYPE="password" name="password" size="10" class=text maxlength="10"><font color="#FF0000">*</font>
</td></tr>
<tr><td width="70" align="right">
确认密码:</td><td><INPUT TYPE="password" name="password1" size="10" class=text maxlength="10"><font color="#FF0000">*</font>
</td></tr>
<tr><td width="70" align="right">
提示问题:</td><td><INPUT TYPE="text" NAME="question" size="10" class=text maxlength="30"><font color="#FF0000">*</font>
</td></tr>
<tr><td width="70" align="right">
提示答案:</td><td><INPUT TYPE="text" NAME="answer" size="10" class=text maxlength="30"><font color="#FF0000">*</font>
</td></tr>
<tr><td width="70" align="right">
腾讯Oicq:</td><td><INPUT TYPE="text" NAME="oicq" size="10" class=text maxlength="15">
</td></tr>
<tr><td nowrap width="70" align="right">
上传照片:
</td><td><input type="file" name="file" onChange="mysubmit(this.form)" size="1" class=text><Br>(支持100KB以内的.GIF/.JPG图片)
</td></tr>
<tr><td width="70" align="right">
照片说明:</td><td><INPUT TYPE="text" name="shuoming" size="10" class=text>
<input type=hidden name=noneed>
</td></tr>
<tr align="center"><td colspan=2>
<INPUT TYPE="submit" value="好 了" class=button onmouseover="this.style.color='#ff8800'" onmouseout="this.style.color='#000000'">   
<INPUT TYPE="button" value="放 弃" onclick="javascript:history.go(-1)" class=button onmouseover="this.style.color='#ff8800'" onmouseout="this.style.color='#000000'">
</td></tr>
</table>

</FORM>

</body>
</html>

qdubit 2003-10-20
  • 打赏
  • 举报
回复
你通过上传组件上传文件的时候,把指定的目录写到程序里就可以呀。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧