焦点图如何用asp.net后台管理图片
想做一个焦点图,用asp.net后台管理图片,请问各位如何实现?最好是附上源代码。 --------------------编程问答-------------------- 不要动不动就要代码,这样给你一个也不会用,要明白思路 --------------------编程问答-------------------- 有没有愿意帮忙的,拜托了 --------------------编程问答-------------------- 你发上你的前台代码,首先是没有后台的。后台只不过把数据从数据库调出来。你知道前台的代码了,后台写进数据库很简单。你照着循环出前台的格式就好了。<script type="text/javascript">
var pics = "";
var links = "";
var texts = "";
<asp:Literal ID="imgurl" runat="server"></asp:Literal>
<asp:Literal ID="imglink" runat="server"></asp:Literal>
<asp:Literal ID="imgtitle" runat="server"></asp:Literal>
//pics = "img/06.jpg|img/07.jpg|img/08.jpg|img/09.jpg|img/10.jpg";
//links = "#|#|#|#|http://www.baidu.com";
//texts = "标题一|标题二|标题三|标题四|标题五";
var so = new SWFObject("flash/276x227.swf", "focus", "276", "227", "7", "#ffffff");
so.addParam('wmode','transparent');
so.addVariable("picurl",pics);
so.addVariable("pictext",texts);
so.addVariable("piclink",links);
so.addVariable("pictime","3");
so.addVariable("borderwidth","276");
so.addVariable("borderheight","227");
so.addVariable("borderw","true");
so.addVariable("buttondisplay","true");
so.addVariable("textheight","1");
so.write("focus");
</script>
上面是前台的代码,后台的代码如下。。
public void bindsilder()
{
从数据库读取一个DATATABLE
string picurl=null;
string piclink=null;
string pictitle=null;
foreach(DataRow dr in dt.Rows)
{
picurl+=dr["urlpic"].ToString()+"|";
piclink +="/news/"+dr["typeid"].ToString()+"_"+dr["id"].ToString()+".htm"+"|";
pictitle+= Gettitle(dr["newstitle"].ToString(),24)+"|";
}
if (!string.IsNullOrEmpty(picurl))
{
imgurl.Text ="pics=\""+picurl.Substring(0, picurl.Length - 1)+"\";";
}
if (!string.IsNullOrEmpty(piclink))
{
imglink.Text ="links=\""+ piclink.Substring(0, piclink.Length - 1)+"\";";
}
if (!string.IsNullOrEmpty(pictitle))
{
imgtitle.Text ="texts=\""+pictitle.Substring(0, pictitle.Length - 1)+"\";";
}
}
--------------------编程问答--------------------
//pics = "img/06.jpg|img/07.jpg|img/08.jpg|img/09.jpg|img/10.jpg";
//links = "#|#|#|#|http://www.baidu.com";
//texts = "标题一|标题二|标题三|标题四|标题五";
一般不管是flash的还是js的都有类型这种的。。你只要在前台输出的结果是这种代码就可以了。
循环读取再取出来也挺好的。。dr就可以了。。。 --------------------编程问答-------------------- 重要的是思路。。给你代码只是参考下。。
主要的思路就是后台读取数据后输出到前台的形式和原来代码的格式一样。。 --------------------编程问答-------------------- 后台读取后怎么输出到前台?具体点行吗? --------------------编程问答-------------------- 在相应的那张数据库表里加个字段,例:state 在写后台代码时控制状态,如果是首页焦点图,state 就改为1,在写页面代码时SQL就where state=1 --------------------编程问答-------------------- 二进制图片显示
上传二进制
if (FileUpLogo.HasFile)
{
//取得上传文件的大小
int FileLen = FileUpLogo.PostedFile.ContentLength;
Byte[] FileData = new Byte[FileLen];
//创建访问客户端上传文件的对象
HttpPostedFile hp = FileUpLogo.PostedFile;
//创建数据流对象
System.IO.Stream sr = hp.InputStream;
//将图片数据放到FileData数组对象实例中,0代表数组指针的起始位置,FileLen代表指针的结束位置
sr.Read(FileData, 0, FileLen);
//将FileData 赋值给实体
brandModel.fld_logo = FileData;
}
或者
HttpPostedFile upFile = up_file.PostedFile;//HttpPostedFile对象,用来读取上传图片的属性
fileLength = upFile.ContentLength;//记录文件的长度
try
{
if(fileLength==0)//当文件长度为0的时候
{
txtMessage.Text = "请选择要上传的文件!";
}
else
{
byte[] fileByte = new byte[fileLength];//用图片的长度来初始化一个字节数组存储临时的图片文件
Stream fileStream = upFile.InputStream;//建立文件流对象
fileStream.Read(fileByte,0,fileLength);//读取图片数据到临时存储体fileByte,0为数据指针位置,fileLength为数据长度
string connString = "Data Source=192.168.1.250;database=image;uid=pwqzc;pwd=cn0088";
SqlConnection conn = new SqlConnection(connString);//初始化数据库连接
string insertStr = "insert into image (image_data,image_content_type,image_description,image_size) values (@image_data,@image_content_type,@image_description,@image_size)";
//插入数据库语句
SqlCommand comm = new SqlCommand(insertStr,conn);
comm.Parameters.Add(new SqlParameter("@image_data",SqlDbType.Image));//添加参数
comm.Parameters["@image_data"].Value = fileByte;//给参数赋值
comm.Parameters.Add(new SqlParameter("@image_content_type",SqlDbType.VarChar,50));
comm.Parameters["@image_content_type"].Value = upFile.ContentType;//记录图片类型
comm.Parameters.Add(new SqlParameter("@image_description",SqlDbType.VarChar,50));
comm.Parameters["@image_description"].Value = txtDescription.Text;//把其他的表单数据上传
comm.Parameters.Add(new SqlParameter("@image_size",SqlDbType.Int,4));
comm.Parameters["@image_size"].Value = upFile.ContentLength;//记录图片长度,读取数据的时候使用
conn.Open();//打开数据库连接
comm.ExecuteNonQuery();//添加数据
conn.Close();//关闭数据库
txtMessage.Text = "你已经成功的上传了图片";
}
}
catch(Exception ex)
{
txtMessage.Text = ex.Message.ToString();
}
}
}
读取
using(SqlConnection conn=new SqlConnection())
{
conn.ConnectionString="";
string strSql="select * from Tb where Id='"+Id+"'";
SqlCommand cmd=new SqlCommand(strSql,conn) ;
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
if(reader.Read())
{
Response.ContentType = "application/octet-stream";
Response.BinaryWrite((Byte[])reader["Photo"]);
}
Response.End();
conn.Close();
}
补充:.NET技术 , ASP.NET