首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么实现选择图片,显示在页面中,保存到数据库

2012-03-27 
如何实现选择图片,显示在页面中,保存到数据库如何实现选择图片,显示在页面中,并能保存到数据库,编辑时还可

如何实现选择图片,显示在页面中,保存到数据库
如何实现选择图片,显示在页面中,并能保存到数据库,编辑时还可以从数据库中读出显示?最好有代码,没代码给出思路也可.谢谢!

[解决办法]
把图片的路径写到数据库
显示的时候读出来就可以了
[解决办法]
如页面中有
<img src='' id='myImage'>用于显示图片

上传控件:
<asp:FileUplod id="fileUpload" ... onchange="changeImage('fileToUpload','testImage')">

js:

/**改变图片 在上传图片是使用。显示预览功能
*** 参数:SourceID:填写上传控件的id
*** mmID : Image显示图片的Imageid
*** FileUpload onchange 事件使用
**/
function changeImage(sourceId,mmId)
{
var str1=document.getElementById(sourceId).value;
var str2=document.getElementById(mmId);
str2.setAttribute("src",str1);
}

lz可以试一下
[解决办法]

C# code
 
图片二进制读取于存储到数据库
这里用的是MYSQL数据库的BLOB字段存储的图片二进制数据
由于用的是MYSQL数据库 所以在引用存储的方法与MSSQL数据库不一样,
MYSQL用的是“?”,而MSSQL数据库是“@”,请大家注意参考
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
using System.Drawing.Imaging;
using MySql.Data.MySqlClient;//引用MYSQL命名空间
public partial class _Default : System.Web.UI.Page
{
  MySqlConnection conn = new MySqlConnection(System.Configuration.ConfigurationManager.AppSettings["conmy"]);
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!this.Page.IsPostBack)
    {
      this.show();
    }
  }
 
  protected void Button1_Click(object sender, EventArgs e)
  {
    if (FileUpload1.HasFile)
    {
      //文件扩展名
      string Ex=FileUpload1.FileName.Substring(FileUpload1.FileName.LastIndexOf('.') + 1);
      if (Ex.ToLower() == "jpg" || Ex.ToLower() == "gif")
      {
        int ImageSize = FileUpload1.PostedFile.ContentLength;//图片的大小
        string ImageType = this.FileUpload1.PostedFile.ContentType;//图片类型
        Stream ImageStream = this.FileUpload1.PostedFile.InputStream;
        Byte[] ImageCount = new Byte[ImageSize];//调用方法转化二进制数据
        int bt = ImageStream.Read(ImageCount, 0, ImageSize);
   
        MySqlCommand comm = new MySqlCommand("testpic",conn);
        comm.CommandType = CommandType.StoredProcedure;
        MySqlParameter pj = new MySqlParameter("?myimage", MySqlDbType.LongBlob,ImageCount.Length);//图片
        pj.Value =ImageCount;//给这字段赋值二进制数据
        comm.Parameters.Add(pj);
        MySqlParameter pname = new MySqlParameter("?imagename", MySqlDbType.VarChar, 100);//图片名称
        pname.Value=FileUpload1.FileName;
        comm.Parameters.Add(pname);
        MySqlParameter psize = new MySqlParameter("?imagesize", MySqlDbType.Int32);//图片名称
        psize.Value =ImageSize;
        comm.Parameters.Add(psize);
        conn.Open();
        comm.ExecuteNonQuery();
        conn.Close();


 
      this.Label1.Text="插入成功!";
      this.show();   
     
      }
      else
      {
        this.Label1.Text = "格式不正确!!!";
      }
      }
    else
    {
      this.Label1.Text = "没有文件!!!";
    }
  }
  private byte[] ImageToByte(string path)//声名一个把图片转化到二进制数据的方法
  {
    FileStream buffer = new FileStream(path, FileMode.Open, FileAccess.Read);
    BinaryReader br = new BinaryReader(buffer);
    byte[] image = br.ReadBytes((int)buffer.Length);
    return image;
  }
  private void show()
  {
    MySqlDataAdapter da = new MySqlDataAdapter("select * from imgpic", conn);
    DataSet ds = new DataSet();
    da.Fill(ds, "a");
    this.GridView1.DataSource = ds.Tables["a"].DefaultView;
    this.GridView1.DataKeyNames = new string[] { "id" };
    this.GridView1.DataBind();
  }
  protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
  {
    string sid = this.GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
    Session["id"] = sid;
    this.Label1.Text = sid;
    this.Image1.ImageUrl = "jpg2.aspx";
  }
}
读取图片
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
public partial class Default2 : System.Web.UI.Page
{
  MySqlConnection conn = new MySqlConnection(System.Configuration.ConfigurationManager.AppSettings["conmy"]);
  protected void Page_Load(object sender, EventArgs e)
  {
 
    if (!this.Page.IsPostBack)
    {
      this.show(); 
    }
  }
  public void show()
  {
   
      string ss = Request.QueryString["id"].ToString();
      string s3 = "select * from imgpic  where id=" + ss;
      MySqlCommand comm = new MySqlCommand(s3, conn);
      conn.Open();
      MySqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
      while(dr.Read())
      {
        Response.Clear();
        Response.C;
        Response.BinaryWrite((byte[])dr["myimg"]);//读取
      }
      Response.End();
      conn.Close();
  }
}
注意图片显示要在另一张页面中
在你要显示的页面添加img 控件src="显示你图片的页面";


[解决办法]
http://blog.csdn.net/chenguang79/archive/2007/10/29/1853930.aspx
这是我的一个方法,看对楼主有没有帮助

热点排行