asp.net上传图片并同时生成缩略图
转贴:wangmm日期:2003-07-18人气:200
<scriptlanguage="VB"runat="server">
SubUploadFile(senderAsObject,eAsEventArgs)
IfFileUp.PostedFile.ContentLength=0Then
FileInfo.Visible=False
ExitSub
Else
FileInfo.Visible=True
FDisplay1.Visible=True
EndIf
FSize.Text="上传文件大小"+CStr(FileUp.PostedFile.ContentLength/1024)+"KB"
FName.Text="已上传文件名:"+FileUp.PostedFile.FileName+"<br>"+FName.Text
'写入数据库
onerrorresumenext
dimmyconnassqlconnection
dimmycommassqlcommand
dimsqlasstring
dimidasinteger
Dimimage,anewimageAsSystem.Drawing.Image
dimwidth,height,newwidth,newheightasinteger
DimcallbAsSystem.Drawing.Image.GetThumbnailImageAbort
myConn=Newsqlconnection(ConfigurationSettings.AppSettings("数据库"))
myconn.open()
sql="insertintopicture(姓名,班级,介绍,属性)values('"&request.cookies("dgxyl").values("dgxylname")&"','"&request.cookies("dgxyl").values("dgxylbj")&"','"&trim(request("TextBox1"))&"','"&request("r1")&"')"
Mycomm=Newsqlcommand(sql,myconn)
mycomm.executenonquery()
myconn.close()
DimmyCommandAsNewSqlCommand("selecttop1idfrompictureorder
byiddesc",myConn)
myCommand.Connection.Open()
DimmyReaderAsSqlDataReader=mycommand.executereader()
ifmyReader.Read()then
id=myReader("id")
endif
myconn.close()
'保存图片
FileUp.PostedFile.SaveAs(Server.MapPath("\classpic\")&cstr(id)&".jpg")
'生成缩略图
image=System.Drawing.Image.FromFile(Server.MapPath("/classpic/"+cstr(id)+".jpg"))
width=image.Width
height=image.height
ifwidth>heightthen
newwidth=250
newheight=image.height/image.Width*newwidth
else
newheight=250
newwidth=image.Width/image.height*newheight
endif
response.write("id="+cstr(id)+"width="+cstr(Width)+";height="+cstr(height)+"")
response.write("newwidth="+cstr(newwidth)+";newheight="+cstr(newheight)+"<br>")
aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,newSystem.IntPtr())
aNewImage.Save(Server.MapPath("/smallpic/"+cstr(id)+".jpg"))
image.Dispose()
DimFileSplit()AsString=Split(FileUp.PostedFile.FileName,"\")
DimFileNameAsString=FileSplit(FileSplit.Length-1)
DimExts()AsString=Split(FileName,".")
DimExtAsString=LCase(Exts(Exts.Length-1))
FDisplay.Text="<ATarget='_blank'HREF='/classpic/"&cstr(id)&".jpg"&"'>查看上传文件</A>"
FDisplay1.text="<ahref='/picture/default.asp?bj="&cstr(request.cookies("dgxyl").values("dgxylbj"))&"'>返回</a>"
EndSub
</script>
<SCRIPTlanguage=JavaScript>
<!--
varrequestsubmitted=false;
functionguestbook_Validator(theForm)
{
//检查是否从新提交
if(requestsubmitted==true){
alert("你已经提交了留言,请等待服务器应答!");
return(false);
}
requestsubmitted=true;
return(true);
}
//-->
</SCRIPT>
<Html>
<BodyBgColor=White>
<H3align="center">请正确填写下面各项</h3>
<Hr></H3>
<Divid="FileInfo"Visible="False"runat="server">
<Asp:Labelid="FSize"runat="server"/><br>
<Asp:Labelid="FName"runat="server"/><br>
<Asp:Labelid="FDisplay"runat="server"/>
<Asp:Labelid="FDisplay1"runat="server"/>
</Div>
<FormEnctype="multipart/form-data"onsubmit="return
guestbook_Validator(this)"runat="server">
上传文件
<InputType="File"id="FileUp"runat="server"size="20"><br>
图片属性:<inputtype="radio"value="<%=request.cookies("dgxyl").values("dgxylbj")%>"name="R1"checked>本班<input
type="radio"value="全校"name="R1">全校(本班则只在本班显示,全校则在全校显示)<P>
图片说明:<br>
<asp:TextBoxid="TextBox1"runat="server"Width="233px"Height="141px">
</asp:TextBox>
<asp:RequiredFieldValidatorid="RequiredFieldValidator1"runat="server"ControlToValidate="TextBox1"ErrorMessage="请输入图片说明">
</asp:RequiredFieldValidator><br>
<Asp:buttonid="Upload"OnClick="UploadFile"Text="上传图片"runat="server"/>
</form>
<Hr>
<p>注意:</p>
<ol>
<li><b>严禁上传污染环境的照片,否则账号将被删除!</b></li>
<li><fontcolor="#808000"><b>请详细填写照片说明,图片说明不详细将会被视为乱传图片,将会被删除!</b></font></li>
</ol>
<p> </p>
</Body>
</Html>