我用C#写了一段上传图片到数据库的代码,思路是:把图片上传到指定文件夹,然后把路径发送到数据库中,显示这个图片时,直接从数据库中读取路径来显示图片,网上找了很久,都不行.我用C#写的代码,很简单的几句,上传的功能已进ok了,但是把路径写入数据库这个环节还有点问题.
我的思路: (upload.aspx) 上传图片-->获取路径-->向数据库写入路径
pic.asp(显示图片页) 读取图片路径-->src="###"
目前C#不是很熟悉,所以用了asp和C#合用的手法,上传用C#,显示用asp
C#的源码(VS2005版)
---------upload.aspx.cs---------
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_ServerClick(object sender, EventArgs e)
{
ArrayList arrfilename = new ArrayList();
arrfilename.AddRange(File1.Value.Split('\\'));
string filename = arrfilename[arrfilename.Count - 1].ToString();
string uploadpath = Page.Request.PhysicalApplicationPath + "pic\\";
File1.PostedFile.SaveAs(uploadpath + filename);
string url;
url = "12.asp?name=" + uploadpath + filename;
Response.Redirect(url);
}
}
------12.asp-------
<!--#include file="conn.asp"-->
<body>
<%
set rs=server.createobject("adodb.recordset")
sqltext="select * from img"
rs.open sqltext,conn,3,3
rs.addnew
rs("pp")=Request.QueryString("name") "pp为数据库中存储图片路径的字段
rs.update
rs.close
conn.close
response.Redirect("pic.asp")
%>
</body>
---------pic,asp------显示上传的图片
<!--#include file="conn.asp"-->
<body>
<%
set rs=server.createobject("adodb.recordset")
sqltext="select * from img"
rs.open sqltext,conn,1,1
%>
<% Do While Not rs.EOF%>
<img border="0" src="<%=rs("pp")%>" width="100" height="100"/>
<%
rs.MoveNext
Loop
rs.close
conn.close
%>
</body>
目前存在几个问题:
1.存入数据库的图片路径是绝对路径,怎样转为虚拟路径
2.显示图片的功能怎样用C#实现