一般图像是不保存在数据库的而是先将放在工程下的某个文件夹中,将所在的工程文件路径存在数据库中,当程序加载的时候,从数据库中读取的路径,然后根据路径在工程的文件夹中读取文件
建议存路径
下面是上传并保存路径到数据库
显示有很多中方法,如果在gridview里面显示的就如截图这样设置
protected void Button4_Click(object sender, EventArgs e){
string FilePath = "";
if (FileUpload1FileName != "")
{
if (FileUpload1PostedFileContentLength <= 0)
{
// PublicFunPublicFunctionshowMsg(this, "上传文件为空,请重新选择");
labmsgText = "上传文件为空,请重新选择";
return;
}
else
{
}
if (FileUpload1HasFile)
{
if (FileUpload1PostedFileContentLength > 4196304)
{
// PublicFunPublicFunctionshowMsg(this, "上传文件过大");
// return;
}
else
{
// FilePath = ServerMapPath("~/Download/Dload1");//服务器文件路径
}
FilePath = ServerMapPath("~/DownLoad/SignImg");//服务器文件路径
FileLoadFunUpLoad(FilePath, FileUpload1, DropDownList2SelectedValue);
UploadURL = "~/DownLoad/SignImg/" + DropDownList2SelectedValue + "_" + FileUpload1FileName;
UploadURL2 = UploadURL;
sql = " update yp_insproom_base_t set SignURL='" + UploadURL2 + "' " +
" where UserID='" + DropDownList2SelectedValue + "' ";
MySqlHelperExecuteNonQuery(PublicFunPublicFunctionGetDBconstr("ce_manage_db"), sql);
labmsgText = "上传成功";
databind();
}
}
else
{
// PublicFunPublicFunctionshowMsg(this, "上传文件路径错误");
labmsgText = "上传文件路径错误";
return;
}
}
mysql数据库是可以存储的, *** 作方法:
1、具体的脚本代码如下,其中我们假定文件上传域的名称为Picture;
2、这样,我们就可以成功的把保存到数据库中。如果在将插入MySQL的过程中出现问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录;
3、提取方法:编写两个文件。其中,第一个文件作为HTML页面的模板,定位的显示位置。第二个文件则被用来从数据库中实际输出文件流,作为<IMG>标签的SRC属性;
4、当HTML页面被浏览时,每显示一副就会调用一次Secondphp3文件。当第二个文件被调用时会传入相应的Picture ID,我们可以借此从数据库中取回对应的并显示。
在设计到数据库的开发中,难免要将或音频文件插入到数据库中的情况。一般来说,我们可以同过插入文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦。但有些时候,向MySQL中插入更加容易管理。
两种,一种是将转化成二进制数据流存入数据库中。一种是保存的路径,然后前台读取路径去调用。相关的代码百度一下应该会有,第二种方法实现上比较简单,就是存储路径,然后根据路径读取对应的显示出来。第一种就比较麻烦,要先把转化成二进制数据,读取时就是从数据库读取对应数据再转化成显示出来。
一般都是这样的,就是在你服务器有一个专门放置的文件夹,然后数据库保存的是你服务器的路径。需要用的时候就去数据库里面取路径。得到路径以后你想怎么处理是你的事情了。
至于如何去数据库取路径这个就是简单的db *** 作。
加载驱动类:
ClassforName(DBDriver);
获取连接:
Connection
conn
=
DriverManagergetConnection(url,username,password);
创建 *** 作对象:
PreparedStatement
stmt
=
conprepareStatement(sql);
执行 *** 作:
ResultSet
rs
=
stmtexecuteQuery();
遍历结果:
List
list
=
new
ArrayList();
while(rsnext()){
//具体 *** 作,通常用rsgetString(name)取值
Image
img
=
new
Image();//类对应你数据库中表格
imgsetSrc(rsgetString("src"));//假设你数据库中image表中地址字段是src
listadd(img);
}
记得关闭资源:
rsclose();
stmtclose();
conclose();
看你的意思是已经取出来了不知道怎么显示:
你取出来之后可以把放在一个list里面然后去页面上遍历这个list
<c:forEach
var="chakan1"
items="list">
<tr>
<td>
<img
src="${chakan1src}"/>
</td>
</tr>
</c:forEach>
大致应该是这样
是可以放到数据库里面的,以ACCESS为例子,你要使用OLE数据类型,
然后把转化为长二进制数据存入,读取的时候可以生成系统隐藏的图
片然后在控件中显示
我的回答肯定没错,因为这个东西我做过,如果还不明白可以到我的空间
里留言,然后留下****,我会把代码给你,我使用的是VB,用VB把
放到ACCESS中,然后再读取出来,实际上是个很简单的小程序
最近无事还是贴上来吧
Dim cc() As Byte
Dim i
Dim t
Private Sub Command1_Click()
CommonDialog1Filter = "JPG(BMP)|BMP"
CommonDialog1ShowOpen
If CommonDialog1FileName <> "" Then
Picture1Picture = LoadPicture(CommonDialog1FileName)
strname = CommonDialog1FileName
Open strname For Binary As #1
ReDim cc(LOF(1) - 1)
t = cc(LOF(1) - 1) '在读取二进制时,如果是用文件 *** 作那么涉及到到底从文件中取多少字节的问题,所以字节数组要指定大小
Get #1, , cc
Close
Else
MsgBox "没有选中"
End If
End Sub
Private Sub Command2_Click()
Adodc1Refresh
Adodc1RecordsetAddNew
Adodc1RecordsetFields("id") = i
Adodc1RecordsetFields("qq") = cc
i = i + 1
Adodc1RecordsetUpdate
Adodc1Refresh
End Sub
Private Sub Command3_Click()
Adodc1Refresh
Dim P() As Byte
Adodc1RecordSource = "select qq from 表一 where id='" & Text1Text & "'"
P = Adodc1RecordsetFields("qq") '当把一组二进制数据赋值给一个二进制数组时就不用指定数组的大小了,因为是全部赋值
Open AppPath & "\oobmp" For Binary As #1
Put #1, , P
Close
End Sub
Private Sub Command4_Click()
Open AppPath & "\oobmp" For Binary As #1
Put #1, , cc
Close
End Sub
Private Sub Form_Load()
i = 1
End Sub
我是 Control_World
请设置我为最佳答案吧
以上就是关于怎样将图片存在数据库里面全部的内容,包括:怎样将图片存在数据库里面、亲啊我怎么把图片存入到数据库呢,然后再显示出来、mysql数据库可以存图片吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)