首先可以选择Apache里面的upload包这个是把文件传到服务器上的上传组件然后是存到数据库里那就要看你什么数据库了比如Oracle就是Blob至Access就是
对象
字段存取方法都是不一样的要分别对待
有个通用方法,你找到文件之后,建立输入流,然后创建bytearrayoutputstream,然后从输入流中读字节到后面那个流中,并冲它里面产生字节数组保存到byte字段中
其实建议你不要将直接上传到数据库
上传到数据库要用到
blob大对象(以oracle为例),这样影响程序性能,你可以将上传到指定文件夹,同时将保存的路径+文件名上传到数据库,要显示就读取这个这个路径找到,然后显示刚做了个这个代码
一般图像是不保存在数据库的而是先将放在工程下的某个文件夹中,将所在的工程文件路径存在数据库中,当程序加载的时候,从数据库中读取的路径,然后根据路径在工程的文件夹中读取文件
建议存路径
下面是上传并保存路径到数据库
显示有很多中方法,如果在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;
}
}
是可以放到数据库里面的,以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
请设置我为最佳答案吧
以上就是关于jsp中 怎么把图片直接存入数据库中,最好有例子全部的内容,包括:jsp中 怎么把图片直接存入数据库中,最好有例子、怎样将图片存在数据库里面、亲啊我怎么把图片存入到数据库呢,然后再显示出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)