当前位置:编程学习 > JAVA >>

用户上传的头像怎么存到oracle中后sql中又怎么在用户登陆后显示在页面上啊

用户上传的头像怎么存到oracle中后sql中又怎么在用户登陆后显示在页面上啊 --------------------编程问答-------------------- ssh myeclips开发的 --------------------编程问答-------------------- http://developer.51cto.com/art/200906/132472.htm --------------------编程问答--------------------  orcale 存放图片名称,图片上传至工程下新建文件夹下,也没显示则获取orcale图片名称。src下 指定图片路径+数据库取出的图片名称。 --------------------编程问答--------------------
一般上传文件有两种:1、将文件以流的形式存到数据库中 2、将文件存入硬盘,数据库中至存放路径。

如果是1的话,对于oracle可以用blob或者clob来存储二进制数据。至于如何读出,再显示在画面上,这个也不难,你如何存,再如何取就完了。这个例子也很多。 --------------------编程问答-------------------- 保存图片的路径, --------------------编程问答-------------------- 问题是怎么把图片以流的形式存到数据库中,再取出来 !!!随便那种形式!!谁给个列子啊 gaojunwei1991@msn.cn  让在下参考下 --------------------编程问答-------------------- 把图片上传到项目的某个路径;而不是保存到数据库中;
数据库只需要保存图片的项目路径就OK了;注意保持图片名称的唯一性;不然回覆盖

一般没有谁蛋疼得把图片保存到数据库中; --------------------编程问答-------------------- 我这里是用spring mvc上传的图片

MultipartHttpServletRequest multipartRequest  =  null;
try {
multipartRequest  =  (MultipartHttpServletRequest) request;
} catch (Exception e) {
// TODO: handle exception
}
if(multipartRequest!=null){
//用户身份证号码扫描件
MultipartFile imgFile1=  multipartRequest.getFile("userIdentityCardScan_fleet");
Blob content=Hibernate.createBlob(imgFile1.getBytes());
                        CepUserFleet fleet=new CepUserFleet();
                        fleet.setLegalCardCopy(content);
                        //调用hibernate的方法保存到数据库
}

public class CepUserFleet{
private Blob legalCardCopy;
...get set方法

}

下面是CepUserFleet的配置文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.jeecms.cms.entity.cep">
<class name="CepUserFleet" table="T_USER_FLEET">
<id name="id" type="java.lang.Integer" column="id">
<generator class="sequence"><param name="sequence">T_USER_FLEET_SEQ</param></generator>
</id>
<property name="legalCardCopy" column="LEGAL_CARD_COPY" type="java.sql.Blob" />
</class>
</hibernate-mapping>
--------------------编程问答-------------------- 前台在jsp页面显示的图片可以传id取到该条数据然后再得到这个blob,下面的代码你改一下能用的

<img id="preImg1" src="review_viewimage.jspx?groupType=${(cmsMember.group.name)!}&id=${(cmsMember.id)!}&fieldName=userIdentityCardScan" style="width:100px;height:70px;background-color:#CCCCCC;border:1px solid #333"/>

我的一条记录里有多张图片,所以加了一些别的参数在里面,你自己看你的需求设置

@RequestMapping("/member/review_viewimage.jspx")
public String allianceViewImages(Integer id,String groupType,String fieldName,
HttpServletRequest request,
HttpServletResponse response, ModelMap model) {
Blob blob = getImageBlob(groupType, fieldName, id);
if(blob!=null){
InputStream input = null;
try {
input = blob.getBinaryStream();
response.setContentType("image/*"); // 设置返回的文件类型
OutputStream outStream = response.getOutputStream(); // 得到向客户端输出二进制数据的对象
byte[] buffer=new byte[32768];
int n=0;
while((n=input.read(buffer))!=-1){
outStream.write(buffer,0,n);
}
input.close();
} catch (SQLException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (IOException e) {
// 错误处理
PrintWriter toClient;
try {
toClient = response.getWriter(); // 得到向客户端输出文本的对象
response.setContentType("text/html;charset=utf-8");
toClient.write("无法打开图片!");
toClient.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}catch (NullPointerException n){
// 错误处理
PrintWriter toClient;
try {
toClient = response.getWriter(); // 得到向客户端输出文本的对象
response.setContentType("text/html;charset=utf-8");
toClient.write("还未上传联盟图片!");
toClient.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

return null;
}
--------------------编程问答-------------------- 上传图片这里用的html

<form id="jvForm" action="register_submit.jspx" method="post" enctype="multipart/form-data" style="padding-top: 20px">
<input id="userIdentityCardScan_fleet" name="userIdentityCardScan_fleet" type="file" size="28" />
<input class="user_btn" type="image" src="/${path}/img/cep/user/submit.jpg" id="register2" />
</form>
--------------------编程问答-------------------- 图片显示搞定了 怎么让他保存到目录中 名字不重复啊 --------------------编程问答-------------------- 图片要存入在文件系统中,不放在数据库里,数据库存放图片地址。
至于名称不重复有很多方法,楼主可参考UUID;或者简单点,图片名称中加精确到毫秒或纳秒的当前时间 --------------------编程问答-------------------- 名字不存在直接用时间的md5得了 --------------------编程问答-------------------- 重名问题怎么解决啊  难不成要覆盖 --------------------编程问答-------------------- --------------------编程问答-------------------- 用户ID不会重复吧,用用户ID作为图片名不可以吗?或者用户名ID再加个后缀以示区分
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,