刚接触asp.net,菜鸟一个。
网上文章看了不少,但都比较罗索,又简单实现的吗?
现在要做一个利用datagrid的一个超链接列,列名是图片的名称
点击以后把图片打开
最好有通用的(图片和所有文件都能上传到数据库)
最好加一个图片大小限制。
呵呵,条件有点多。
但却是很急。
跪求。

解决方案 »

  1.   

    向SQL Server数据库添加图片 
    作者:孟宪会 
    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
      

  2.   

    多个文件同时上传的问题!~!!!!
    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
      

  3.   

    ' 获得图片的大小
      intImageSize = PersonImage.PostedFile.ContentLength
      ' 获得图片类型
      strImageType = PersonImage.PostedFile.ContentTypePersonImage 指的是什么 东西?
      

  4.   

    http://www.dotnetjunkies.com/Article/C4A2ACC3-C6B4-4E4C-802A-85B8DBEC7F25.dcik
      

  5.   

    如何把图片上载到数据库中去?    代码和详细说明如下(完整代码,虚线段“------”因方便说明而设)
    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
      

  6.   

    Dim FileByteArrayA() As Byte
    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)
      

  7.   

    把数据读出来放在 Session("Buffer"))
    Response.ContentType = "Application/octet-stream"
            Response.Clear()
            Response.AddHeader("Content-Disposition", " filename=" + Session("sFileName"))
                    Response.BinaryWrite(Session("Buffer"))
            Response.End()