刚接触asp.net,菜鸟一个。
网上文章看了不少,但都比较罗索,又简单实现的吗?
现在要做一个利用datagrid的一个超链接列,列名是图片的名称
点击以后把图片打开
最好有通用的(图片和所有文件都能上传到数据库)
最好加一个图片大小限制。
呵呵,条件有点多。
但却是很急。
跪求。
网上文章看了不少,但都比较罗索,又简单实现的吗?
现在要做一个利用datagrid的一个超链接列,列名是图片的名称
点击以后把图片打开
最好有通用的(图片和所有文件都能上传到数据库)
最好加一个图片大小限制。
呵呵,条件有点多。
但却是很急。
跪求。
解决方案 »
- 【散300分】公布网站上的一个缓存类,希望大家多指教
- 请教下GridView取值问题
- asp:CheckBox判断是否选中?急,麻烦有人看看
- gridview问题
- 请会JS的朋友帮我改改!
- ASP.NET的两个问题,希望帮忙
- 各位大侠! 系统内 下载一个 1MB多的excel文件,下载下来后,文件打不开。而且系统还访问不了了! 为什么呢?
- 急!急!急!-------ASP.NET如何调用ACTIVEX控件中的属性和方法
- 我没遇到过的蹊跷问题?看有谁能帮我解决一下啊
- 我是asp使用者,最近想转到asp.net,推荐几本关于asp.net的好书?
- 关于xml,大家都进来
- 求教用vb.net写的asp.net中是否可以在服务器端弹出消息对话框
作者:孟宪会
http://dotnet.aspx.cc/ShowDetail.aspx?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506从SQL Server数据库提取图片并显示在DataGrid
作者:孟宪会
http://dotnet.aspx.cc/ShowDetail.aspx?id=ECD9AE16-8FF0-4A1C-9B9F-5E8B641CB1B1
http://expert.csdn.net/Expert/topic/2705/2705378.xml?temp=.8093378哪位有上传文件的代码啊?
注:使用Response.Redirect(Request.URL.ToString())重定向到该页
http://expert.csdn.net/Expert/topic/2724/2724953.xml?temp=.6093866上传文件太大后,页面出错如何处理??
http://expert.csdn.net/Expert/topic/2568/2568707.xml?temp=.9889643C#、ASP.NET如何实现文件上传、下载功能,请指教!
http://expert.csdn.net/Expert/topic/2746/2746440.xml?temp=.7909052兄弟们,怎么上传大文件?8M以内就可以了……
http://expert.csdn.net/Expert/topic/2733/2733618.xml?temp=.8805963急求文件上传
http://expert.csdn.net/Expert/topic/2820/2820394.xml?temp=.5401728
intImageSize = PersonImage.PostedFile.ContentLength
' 获得图片类型
strImageType = PersonImage.PostedFile.ContentTypePersonImage 指的是什么 东西?
imgupload.aspx
<%@ Page EnableSessionState="false" explicit="true" strict="true" MaintainState="false"%>
<%@Import Namespace="System.Data.Sql" %>
<%@Import Namespace="System.IO"%>
<script language="VB" runat=server>
Sub UploadBtn_Click(Sender as Object, E as EventArgs)
Dim imgStream as Stream
Dim imgLen as Integer
Dim imgName_value as string
Dim imgContentType as String
Dim imgUploadedName as String----------------------------------------------------------------------------------------------------------------
imgStream = UploadFile.PostedFile.InputStream
' 处理图片数据流
imgLen = UploadFile.PostedFile.ContentLength
' 获知要创建多长的字节数组
imgUploadedName = UploadFile.PostedFile.FileName
Dim imgBinaryData(imgLen) as Byte
' 创建一个字节数组
imgContentType = UploadFile.PostedFile.ContentType
' 处理图片数据类型,如image/gif或image/jpeg
imgName_value = imgName.Value
' 给图片做一个切题的说明(这样,数据库的图片就有两个名字了).一个是上传时原本的文件名,另一个是用户在上传时输入的说明.如果这个说明在上传时没有输入,我们将通过UploadFile.PostedFile.FileName.检索该图片原本的文件名.但是, UploadFile.PostedFile.FileName.返回的是上传图片的完整路径,如可能是: C:\intels\chunfeng.jpg,因此,在稍后我们还要写一个函数来处理一下
Try
If imgName_value.Length < 1 then
imgName_value = GetLastRightOf("\",imgUploadedName )
End if
Catch myEx as Exception
imgName_value = GetLastRightOf("\",imgUploadedName )
End Try
---------------------------------------------------------------------------------------------------------------- Dim n as Integer = imgStream.Read(imgBinaryData, 0, imgLen)
' 处理图片数据流,并把它转换为一个字节数组
Dim NumRowsAffected as Integer = MyDatabaseMethod(imgName_value, imgBinaryData, imgContentType)
If NumRowsAffected > 0 then
Response.Write ( "<BR>恭喜,图片上传成功!" )
Else
Response.Write ( "<BR> 噢,图片上传失败!" )
End if
End Sub----------------------------------------------------------------------------------------------------------------
' 这个函数就是刚才上面提到的处理形如: C:\intels\chunfeng.jpg文件名的函.GetLastRightOf ()在最后位置寻找"\",一旦定位,就储存到变量 StrPos里,调用SubString()字符串对象方法,并返回在最后那个"\"后面的一切字符.调用String.SubString()应该是SubString(StrPos + 1),因为"\"的长度也要说明,所以要把StrPos加1
Function GetLastRightOf(LookFor as String, myString as String) as String
Dim StrPos as Integer
StrPos = myString.LastIndexOf(LookFor)
Return myString.SubString(StrPos + 1)
End Function
----------------------------------------------------------------------------------------------------------------
' 当数据提交,要分析二进制数据并插入到数据库中去,因此,我们需要两个函数来完成:连接字符串和插入图片到数据库.这是后者,可在查询中定义参数哦
Function MyDatabaseMethod(imgName As String, imgbin As Byte(), imgcontenttype as String) As Integer
Dim connection as New SQLConnection( sqlConnString() )
Dim command as New SQLCommand( "INSERT INTO Image (img_name,img_data,img_contenttype) VALUES ( @img_name, @img_data,@img_contenttype )", connection )
' 参数img_name是图片说明或名称; img_data是二进制或字节数组; img_contenttype是图片数据类型,如image/gif或image/jpeg
Dim param0 As New SQLParameter( "@img_name", SQLDataType.VarChar,50 )
param0.Value = imgName
command.Parameters.Add( param0 )
Dim param1 as New SQLParameter( "@img_data", SQLDataType.Image )
param1.Value = imgbin
command.Parameters.Add( param1 )
Dim param2 as New SQLParameter( "@img_contenttype", SQLDataType.VarChar,50 )
param2.Value = imgcontenttype
command.Parameters.Add( param2 )
connection.Open()
' 打开一个到数据库的连接
Dim numRowsAffected as Integer = command.ExecuteNonQuery()
' 通过调用command.ExecuteNonQuery()执行命令
connection.Close()
Return numRowsAffected
End Function ---------------------------------------------------------------------------------------------------------------
Private Function sqlConnString() as String
REM -- Get Connstring from config.web
Dim Context as HttpContext = HttpContext.Current
Dim AppSettings as HashTable = Ctype(Context.GetConfig("appsettings"),HashTable)
Dim myDSN as String = Ctype(AppSettings("cnTest"),String)
Return myDSN
' 这个函数很简单:读取数据库连接字符串
End Function
--------------------------------------------------------------------------------------------------------------- </script>
<html>
<title>精彩春风之上传图片到数据库</title>
<body>----------------------------------------------------------------------------------------------------------------
'建立上传图片的表格
<form enctype="multipart/form-data" runat=server id=form1 name=form1>
' enctype属性向浏览器和服务器说明上传二进制数据
请输入图片说明:
<input type=text id=imgName runat="server" />
'type=text控制一个对话框给用户
<br>选择上传的图片:
<input id="UploadFile" type=file runat=server>
<asp:button Text="上传" OnClick="UploadBtn_Click" runat=server/>
</form>
---------------------------------------------------------------------------------------------------------------- </body>
</html>imgview.aspx
<%@ Page EnableSessionState="false" explicit="true" MaintainState="false"%>
<%@ Import Namespace="System.Data.Sql" %>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim imgid as String = Request.QueryString("id")
Dim sqlText as String = "SELECT img_name, img_contenttype, img_data FROM image WHERE img_pk=" & imgid
Dim dbRead AS SQLDataReader
Dim sqlCmd AS SQLCommand
sqlCmd = New SQLCommand(sqlText,sqlConnString() )
sqlCmd.ActiveConnection.Open()
sqlCmd.execute(dbRead )
If dbRead.Read()
Response.ContentType = dbRead.Item("img_contenttype").ToString()
Response.BinaryWrite ( dbRead.Item("img_data") )
End If
End Sub
Private Function sqlConnString() as String
' 从config.web 中获取Connstring from
Dim Context as HttpContext = HttpContext.Current
Dim AppSettings as HashTable = Ctype(Context.GetConfig("appsettings"),HashTable)
Dim myDSN as String = Ctype(AppSettings("cnTest"),String)
Return myDSN
End Function
</script>image.sql
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[image]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[image]
GO
CREATE TABLE [dbo].[image] (
[img_pk] [int] IDENTITY (1, 1) NOT NULL ,
//主关键字
[img_name] [varchar] (50) NULL ,
//图片说明
[img_data] [image] NULL ,
//储存二进制图像数据
[img_contenttype] [varchar] (50) NULL
//图片数据分类类型,如"image/gif"或"image/jpeg",以便客户端识别
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[image] WITH NOCHECK ADD
CONSTRAINT [PK_image] PRIMARY KEY NONCLUSTERED
(
[img_pk]
) ON [PRIMARY]
GO
Dim StreamObject As Stream
Dim splitStringA() As StringsplitStringA = Request.Files("txfFile1").FileName.Split("\\")
ReDim FileByteArrayA(Request.Files("txfFile1").ContentLength)
StreamObject = Request.Files("txfFile1").InputStream
StreamObject.Read(FileByteArrayA, 0, Request.Files("txfFile1").ContentLength)
Response.ContentType = "Application/octet-stream"
Response.Clear()
Response.AddHeader("Content-Disposition", " filename=" + Session("sFileName"))
Response.BinaryWrite(Session("Buffer"))
Response.End()