必威注册电子书籍教程中心网文荟萃客户留言繁體中文
设为首页
加入收藏
联系必威注册
您当前的位置:92动力网 -> 教程中心 -> 技术学院 -> .Net专栏 -> 教程内容 退出登录 用户管理
栏目导航
· SMS学院· .Net专栏
· ASP学院· PHP学院
· CGI学院· XML学院
· SQL学院· JSP学院
· Script学院
热门教程
· 如何在Visual Basic...
· 使用Visual Basic操...
· 使用VB6.0设计Activ...
· VB动态调用外部函数...
· 建立一个程序员自己...
· 如何编写高质量的VB...
· [图文] 为更新到Visual Bas...
· 再谈在VB中调用VC++...
· 用VB语言编程实现JP...
· 用DTS实现SQL数据库...
相关教程
· [图文] 如何在ASP.Net 中把...
· 用Asp.Net 来发送E-...
· [图文] 使用DW用ASP+ACCESS...
· 无组件图片与文本同...
· 用ASP动态生成JS表单...
· 用ASP编写网上调查投...
· 用ASP做全文检索
· 用ASP建立自己网站的...
· 使用ASP推出你自己网...
· 使用ASP/VBS 调用Go...

用asp.net实现将上传的图片变小存入数据库
作者:Admin聽聽来源:ASP教程聽聽发布时间:2004-11-1 10:27:30聽聽发布人:siforgern

减小字体 增大字体


我校的学生网:www.ehang.com.cn中有校友录和图库等的项目有上传图片的功能,我将图片数据存入数据库中,需要将图片变小后和原图片一块存入数据库中,这样先可显示很多小图,点击后再显示大图!在asp.net中是这么做的:
changimage.aspx中代码:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="changimage.aspx.vb" Inherits="uploadimage.changimage"%>
















changimage.aspx.vb中代码如下:
Public Class changimage
Inherits System.Web.UI.Page
Protected WithEvents cmddemo As System.Web.UI.WebControls.Button
Protected WithEvents cmdupload As System.Web.UI.WebControls.Button
Protected WithEvents SqlConn As System.Data.SqlClient.SqlConnection
Protected WithEvents SqlComm As System.Data.SqlClient.SqlCommand
Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile #Region " Web Form Designer Generated Code "'This call is required by the Web Form Designer.
Private Sub InitializeComponent()
Me.SqlConn = New System.Data.SqlClient.SqlConnection()
Me.SqlComm = New System.Data.SqlClient.SqlCommand()End SubPrivate Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
Form Designer
InitializeComponent()
End Sub#End RegionPrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End SubPrivate Sub cmdupload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdupload.Click
Dim image As System.Drawing.Image, newimage As System.Drawing.Image
Dim callb As System.Drawing.Image.GetThumbnailImageAbort
Dim f As System.IO.File, fs As System.IO.FileStream
Dim temppath As String
Dim bigdata As Byte(), smalldata As Byte() '大图片数据、小图片数据
Dim pic As System.Data.SqlClient.SqlParameter, picsmall As System.Data.SqlClient.SqlParameter
'检察上传文件是否合标准,check函数是我根据网站需要写的了
If check(File1.PostedFile.FileName) <> "ok" Then
Response.Write(check(File1.PostedFile.FileName))
Exit Sub
End If
'设置临时路径,为了防止多用户访问时的冲突,设了一个application对象
If Application("image") = "" Then
Application("image") = 0
End If
Application.Lock()
temppath = Server.MapPath(CStr(Application("image"))) '临时路径
Application("image") = Application("image") + 1
Application.UnLock()
'读取图片的数据
ReDim bigdata((Me.File1.PostedFile.InputStream.Length)
Me.File1.PostedFile.InputStream.Read(bigdata, 0, UBound(bigdata)) '将原图片数据读到bigdata中
'改变图片的大小
image = System.Drawing.Image.FromStream(Me.File1.PostedFile.InputStream)
'newimage里面的size也可另外设置,我只用了80*60和60*80两种
If image.Width > image.Height Then
newimage = image.GetThumbnailImage(80, 60, callb, New System.IntPtr(0))
Else
newimage = image.GetThumbnailImage(60, 80, callb, New System.IntPtr(0))
End If
image.Dispose()
'将新图片及图片变小后存到临时路径中
newimage.Save(temppath, System.Drawing.Imaging.ImageFormat.Jpeg)
newimage.Dispose()
'读取临时文件数据到smalldata中
fs = New System.IO.FileStream(temppath, IO.FileMode.Open, IO.FileAccess.Read)
ReDim smalldata(fs.Length)
fs.Read(smalldata, 0, UBound(smalldata))
fs.Close()
'上述获得小图片的方法我原本想用system.io.memorystream的,可是行不通:代码如下:
'dim m as system.io.memorystream
'm=new system.io.memorystream()
'newimage.save(m,System.Drawing.Imaging.ImageFormat.Jpeg)
'redim smalldata(m.length)
'm.read(smalldata,0,m.length)
'可是上述方法读出来的smalldata全是空的,不知道原因,请指教
'删除临时文件
If f.Exists(temppath) Then
f.Delete(temppath)
End If
'将数据加入数据库中
'由于数据库中有image字段,我用sql插不进去,就用一个存储过程
'请教各位大虾用sql语句插入有image字段的表该怎么写
'用insert into talbe(pic,picsmall) values("&bigdata&","&smalldata&")这样不行,用'"&bigdata&"'也不行呀!
SqlConn = New System.Data.SqlClient.SqlConnection(connstr) '可自己设置connstr连接数据库服务器
SqlComm = New System.Data.SqlClient.SqlCommand()
SqlComm.CommandType = CommandType.StoredProcedure
SqlComm.CommandText = "dbo.image"
pic = New System.Data.SqlClient.SqlParameter("@pic", SqlDbType.Image)
pic.Value = bigdata
picsmall = New System.Data.SqlClient.SqlParameter("@picsmall", SqlDbType.Image)
picsmall.Value = smalldata
SqlComm.Parameters.Add(pic)
SqlComm.Parameters.Add(picsmall)
SqlComm.Connection = SqlConn
SqlComm.Connection.Open()
SqlComm.ExecuteNonQuery()
SqlComm.Connection.Close()
SqlComm.Dispose()
SqlConn.Dispose()
End Sub
End Classdbo.image存储过程如下:
create proc dbo.image
@pic image,
@picsmall image
as
insert into table(pic,picsmall) values (@pic,@picsmall)
[] [返回上一页] [打 印] [收 藏]
∷相关教程评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图 - 管理登录
Copyright 2019 必威注册. All Rights Reserved .
浙ICP备05047688号