
如何将存入sqlite数据库
1将转化为byte数组
2将byte数组放入contentvalues
3执行数据库的insert *** 作,将contentvalues里面的值存入sqlite
代码大致如下://转换
Bitmap bm = BitmapFactorydecodeResource(getResources(), Rdrawableicon);
0202020202020202 ByteArrayOutputStream baos = new ByteArrayOutputStream();02020202
0202020202020202 bmcompress(BitmapCompressFormatPNG, 100, baos);02020202
0202020202020202 byte[] result = baostoByteArray();0202//装入
ContentValues values = new ContentValues();
valuesput("image", result);//插入数据库
要保存数据到数据库的话,最省空间的就是二进制保存,当然,不考虑空间问题,你也可以编码成base64字符串保存也行啊。
但是,在生产实际中,一般只是把路径存入数据库,而不实际存储数据。毕竟数据库太大对数据的迁移是件很麻烦的事。
建议存路径
下面是上传并保存路径到数据库
显示有很多中方法,如果在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;
}
}
首先
可以选择Apache里面的upload包
这个是把文件传到服务器上的上传组件
然后是存到数据库里那就要看你什么数据库了比如Oracle就是Blob
至Access就是
对象
字段
存取方法都是不一样的要分别对待
有个通用方法,你找到文件之后,建立输入流,然后创建bytearrayoutputstream,然后从输入流中读字节到后面那个流中,并冲它里面产生字节数组保存到byte字段中
其实建议你不要将直接上传到数据库
上传到数据库要用到
blob大对象(以oracle为例),这样影响程序性能,你可以将上传到指定文件夹,同时将保存的路径+文件名上传到数据库,要显示就读取这个这个路径找到,然后显示刚做了个这个代码
1
可以将上传到服务器,以二进制数据存放到数据库
2
可以将以文件方式上传到服务器,存放到指定目录
---------
使用上传,可以采用上传组件(asp上传组件,很多的,搜一下),也可以使用无组件上传
一般图像是不保存在数据库的而是先将放在工程下的某个文件夹中,将所在的工程文件路径存在数据库中,当程序加载的时候,从数据库中读取的路径,然后根据路径在工程的文件夹中读取文件
一般都是这样的,就是在你服务器有一个专门放置的文件夹,然后数据库保存的是你服务器的路径。需要用的时候就去数据库里面取路径。得到路径以后你想怎么处理是你的事情了。
至于如何去数据库取路径这个就是简单的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>
大致应该是这样
以上就是关于如何将图片存入sqlite数据库全部的内容,包括:如何将图片存入sqlite数据库、谁知道把图片保存到数据库的表中,有哪些保存方法除了以二进制保存、亲啊我怎么把图片存入到数据库呢,然后再显示出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)