asp 提交表单和上传文件 45
见页面图:
希望能获得所有完整的程序,以及包括如何跳转等。
如果可行,我还会提高悬赏分数。 展开
asp.net和asp上传方式基本相似。都需要使用到form表单。下面分别介绍asp和asp.net两种文件上传方式。
第一种:asp方式
首先建立form表单
<form name="form1" method="post" action="send.asp" enctype="multipart/form-data">
<input name="title" type="text"/>
<input name="uploadimg" type="file" />
<input name="submit" type="submit" value="提交"/>
</form>
asp的表单一定要注意加上enctype="multipart/form-data"这个属性,否则是上传不了图片的,这个属性很关键。
上传处理代码也就是send.asp的处理代码。
因为asp本身没有上传的组件或控件,这里只能借助第三方式的组件或类。上传组件推荐使用aspJpeg组件,这个组件不仅可以上传文件,如果是图片的话,可以调节尺寸尺寸,创建缩略图等。很方便,目前一般的空间商都支持这个组件,另外就是使用组件上传类,像风声,无惧等,都是无组件上传。
上传代码,这里假设采用的是风声无组件上传类。类文件已经包含进去。
<include file="uploadclass.asp"-->
处理代码:
先初始化上传类
dim myrequest
set myrequest = new UpLoadClass
设置属性:
myrequest.FileType="gif,jpeg,jpg,png" //设置上传类型
myrequest.SavePath="../upload/" //设置上传路径
myrequest.MaxSize=100*1024 //设置上传文件的大小,
myrequest.AutoSave=1 //设置保存方式,为1表示自动保存
myrequest.Open //打开文件流
title = myrequest.form("title")
img = myrequest.form("uploadimg") //这两部表示接收form表单中的数据。不 能再用request.form或request.querystring来接收了,必须用刚才初始化的对象
myrequest来接收。
现在数据接收到了,剩下的就是保存到数据库。这和常用的数据保存方式一下的,拼接SQL.然后再执行,这里不赘述。
第二种asp.net方式。
asp.net方式,因为采用的是服务器控件,所以与asp有点区别。
首先是form不同,asp.net的form是服务器控件,需要添加ID和runat="Server"如
<form name="form1" ID="form1" runat="Server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" /></form>
处理代码,上传并保存代码
protected void Button1_Click(object sender, EventArgs e)
{
String savePath = Server.MapPath("upload");
if (FileUpload1.HasFile)
{
String filename;
filename = FileUpload1.FileName;
savePath +=filename;
FileUpload1.SaveAs(savePath);
Page.Response.Write(FileUpload1.PostedFile.ContentType + FileUpload1.PostedFile.ContentLength+"<br>");
Page.Response.Write("<img src='"+savePath+"'>");}
else
{
Page.Response.Write("fff");
}
}
asp提交和上传文件,与asp.net是不同的。一个是html标签,一个是服务器控件。相对来说,asp.net的文件上传比asp简单很多,因为asp.net提供了相对应的上传控件。而asp没有。只有采用第三方组件或无组件上传类。上传文件成功后,另外还可以加入更多的处理元素,如图片入库,加上水印等,这需要你自己去思考和查找资料了。
<table width="90%" border="0" cellspacing="1" cellpadding="0">
<form name="pubinfo" method="post" action="admin_pro.asp">
<tr>
<td width="20%" height="25" align="left" class="t">产品名称</td>
<td align="left"><input type="text" id="Co_name" name="Co_name" size="30" value="<%=Co_name%>" /></td>
</tr>
<tr>
<td height="25" align="left" class="t">图片</td>
<td align="left"><input name="Co_picture" type="text" id="Co_picture" size="50" value="<%=Co_picture%>"/>
<input type="button" value="上传文件" onClick="showUpload(this,'Co_picture','../uploadfile',20,null);" />注:第一张图片为案例Logo</td>
</tr>
<tr>
<td height="25" align="center" class="t"><input name="action" type="hidden" id="action" value="save" />
<input name="Co_ID" type="hidden" id="Co_ID" value="<%=Co_ID%>" /></td>
<td align="center" class="t"><input type="submit" name="Submit" value="提交" /></td>
</tr>
</form>
</table>
---------------------------------------------------------------------------
------------------------------提交保存及数据入库-------------------------------------
IF Trim(Request.Form("Co_name"))="" Then
Response.Write("<script language=javascript>alert('对不起,标题不能为空!');history.back();</script>")
Response.End()
End IF
IF Trim(Request.Form("Co_picture"))="" Then
Response.Write("<script language=javascript>alert('请先上传文件之后再进行此操作!');history.back();</script>")
Response.End()
End IF
Co_recommend = "False"
IF Request.Form("Co_recommend") = "true" Then Co_recommend = "True"
Set MM_Recordset = GetRecordset("Select * from table_Commodity Where Co_name = '" & Trim(Request.Form("Co_name")) & "' order by Co_createdate desc")
IF Not MM_Recordset.Eof Then
Response.Write("<script language=javascript>alert('对不起,您所填写的商品信息已经存在!');history.back();</script>")
Response.End()
Else
SQLString = "Insert Into table_commodity(" &_
"Co_name,Co_cateID,Co_picture,Co_clicks,Co_factory,Co_createdate,Co_intro,Co_contact,Co_Website,Co_Email,Co_masterid,Co_recommend)"&_
" Values('" &Trim(Request.Form("Co_name")) & "','" & Trim(Request.Form("Co_cateID")) & "','" & Co_pictures & "',0,'" &Trim(Request.Form("Co_factory")) & "',#" & Now() & "#,'" & Trim(Request.Form("Co_intro")) & "','" &Trim(Request.Form("Co_contact")) & "','" &Trim(Request.Form("Co_Website")) & "','" &Trim(Request.Form("Co_Email")) & "'," & recorderID & "," & Co_recommend & ")"
GetRecordset SQLString
End IF
MM_Recordset.Close
Action=""
-------------------------------------------------------------------------
说明:
此程序采用艾恩Ajax无刷新文件上传,使用很方便,楼主可以从网上找找下载这个类的源代码。