最近的一个.net项目,我要实现图片以二进制形式存到数据库中,并从数据库中读出显示在页面上。以前没做过类似的东东。经过查阅大量的资料,将实现思想先下来供大家参考。
1首先是上传文件。用html中的控件既可实现上传照片的操作。
2将控件得到的客户端地址转化为可以读出二进制数据的地址。此步是关键,需要用到System.IO.getpath将路径上传照片得到的路径转化一下。然后利用filestream控件将转后的地址把照片读到服务器上。注意服务器需要设置一下写的权限。
3。利用filestream读出写入指定路径的照片,以二进制形式存到数据库中。
4。从数据库读数据时,需要先把二进制数据用response.binarywrite的方法读到一个指定的页b上。
5。把要显示图片的页面a上的image控件的imageurl地址指定为页面b的网络相对地址。注意i给mageurl赋值时最好在后台赋,不要写死在前台。
<
HTML
>
< HEAD >
< title > 多文件上传 </ title >
< script language ="JavaScript" > ...
function addFile()
...{
var str = '<INPUT type="file" size="50" NAME="File">'
document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)
}
</ script >
</ HEAD >
< body >
< form id ="form1" method ="post" runat ="server" enctype ="multipart/form-data" >
< center >
< asp:Label Runat ="server" ID ="MyTitle" ></ asp:Label >
< P id ="MyFile" >< INPUT type ="file" size ="50" NAME ="File" ></ P >
< P >
< input type ="button" value ="增加(Add)" onclick ="addFile()" >
< asp:Button Runat ="server" Text ="上传" ID ="Upload" ></
< HEAD >
< title > 多文件上传 </ title >
< script language ="JavaScript" > ...
function addFile()
...{
var str = '<INPUT type="file" size="50" NAME="File">'
document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)
}
</ script >
</ HEAD >
< body >
< form id ="form1" method ="post" runat ="server" enctype ="multipart/form-data" >
< center >
< asp:Label Runat ="server" ID ="MyTitle" ></ asp:Label >
< P id ="MyFile" >< INPUT type ="file" size ="50" NAME ="File" ></ P >
< P >
< input type ="button" value ="增加(Add)" onclick ="addFile()" >
< asp:Button Runat ="server" Text ="上传" ID ="Upload" ></