ASP.NET 上传图片至数据库并读取图片显示
1:上传图片的相对路径到数据库中相应字段里,读取显示时,将控件(假设用的是Image控件)的ImageUrl属性指向该相对路径即可。
2:将图片以二进制流的方式整体上传到数据库里,读取显示时,以二进制流的方式整体读出。这种方法稍微麻烦一点,但保存的是图片整体到数据库里。
第一种方法,实现起来比较简单,因为存入数据库里的只是图片相对路径,当然,同时也就有很大的局限性,由于是相对路径,所以当本地的图片变换了位置
或移除,或是在其他主机上浏览该图片时,就无法显示了。第二种方法,就比较灵活了,可以用在交互性的页面,比如校友录,因为上传的是整张图片,所
以只要读取正确,就能任何主机上显示出来。
下面,分别通过实际的代码,介绍这两种方法。
在这两个方法里,我将用到一个控件:FileUpload,该控件的具体用法参见百度谷歌。。。学习过程中,最好的老师就是他们俩。
1:上传图片相对路径,并读取显示。
数据库里的字段很简单,就两个
Image_ID int identity(1,1) primarykey not null
Image_Wpath varchar(50) null
Image_Wpath 用来保存图片的相对路径
这里注意,我需要上传的文件都放在文件夹“Image”,在后面的上传路径里就需要这个文件夹。
我在输入框里填入Image_ID的值,读取指定的图片,在图片的下面,显示出该图片的相对路径。
接下来,我们看一下具体代码实现上传和读取显示功能。
在项目里,有一个sqlHelper类,是一些常用的数据访问方法。这里就不详细讲了。
上传按钮里的事件:
protected void Button1_Click(object sender, EventArgs e)
{
string name = FileUpload1.FileName; //获取文件名
string type = name.Substring(name.LastIndexOf(".") + 1); //获取文件类型
string ipath = Server.MapPath("Image") + "\\" + name; //获取文件路径
string wpath = "Image\\" + name; //[color=red]设置文件保存相对路径(这里的路径起始就是我们存放图片的文件夹名)[/color]
string query1 = "insert into Images values('"
相关文档:
只有在◎Page指令中设置了:AutoEventWireup="true",服务器端的编译器将按照 Page_eventname 方法名的形式自动的检查相应事件处理方法,自动实现事件的订阅。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System ......
很多Asp.net的教程中的示例代码使用的数据访问方法是Linq to Sql或是Entity Framework。我在www.asp.net的论坛上看到很多关于讨论是否有其他替代的数据库访问方式,回答是:当然有。这篇文章就讲述了使用Ado.Net作为数据访问层来实现一个典型的增删查改程序。
由于是以练习作为目的 ......
Asp.net MVC中的DropDownLists貌似会让一开始从Asp.net Forms转过来的程序员造成不少迷惑.这篇文章讲述了为了使用DropDownLists,你需要在Asp.Net MVC中知道的方方面面.
DropDownList,ComboBox,无论你喜欢怎么称呼这些,他们毫无例外的会被生成为html select标签. 在<select>开标签和</ ......
網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc
Request.ApplicationPath
/
Request.PhysicalPath
D:\Projects\Solution\web\News\Press\Content.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath)
D:\Projects\Solution\web\News\Press
Request.PhysicalApplicationPath
D ......
这个东西太纠结了~贴出来代码,供大家享用
分三个部分:.config .aspx .aspx.cs
//web.config
<appSettings>
<add key="keystring" value="Data Source=ZRQ-PC;Initial Catalog=OnlineJudge;Integrated Security=True"/>
</appSettings>
......