存储页面http://hellophper.com/htm/4/380.html
2种方式
1:数据库读取之后在项目目录下生成图片文件,返回到ext页面上的是根目录下的url
2:使用servlet生成图片,通过判断id来生成不同的图片
iBATIS代码:
java代码:
/**
* 字节转成文件
*
* @param userid
* 用户id
* @return 图片根目录下的url
* @throws Exception
*/
public String BytetoFile(String userid) throws Exception {
String return_url = null;
String path = this.getClass().getClassLoader().getResource("/")
.getPath();
path = path.substring(0, path.length() - 17);
FileOutputStream fos = null;
// InputStream is = null;
byte[] Buffer = new byte[4096];
File myFilePath = new File(path + "/WriteImage");
String row = (String) Sql.getSqlMapClient().queryForObject(
"select.image.byuseridcount", userid);
if (!row.equals("0")) {
try {
ImageBean blob = (ImageBean) Sql.getSqlMapClient()
.queryForObject("select.image.byuserid", userid);
ByteArrayInputStream is = new ByteArrayInputStream(blob
.getSignimg());
if (!myFilePath.exists())
myFilePath.mkdir();
File file = new File(path + "/WriteImage/" + userid + ".jpg");
if (!file.exists()) {
file.createNewFile(); // 如果文件不存在,则创建
fos = new FileOutputStream(file);
// is = blob.getSignimg().getBinaryStream();
int size = 0;
while ((size = is.read(Buffer)) != -1) {
// System.out.println(size);
fos.write(Buffer, 0, size);
}
}
return_url = "WriteImage/" + userid + ".jpg";
} catch (Exception e) {
System.out.println("[OutPutFile error : ]" + e.getMessage());
} finally {
// 关闭用到的资源
if (!myFilePath.exists())
fos.close();
}
}
return return_url;
}
ext页面:
var grid_DataStore=null;
var pageSize=15;
var reloadData=null;
function toggle(sDivId,id) {
var oDiv = document.getElementById(sDivId);
//alert(sDivId);
oDiv.style.display = (oDiv.style.display == "none") ? "block" : "none";
var oDiv1 = document.getElementById(id);
//alert(sDivId);
oDiv1.style.display = (oDiv1.style.display == "none") ? "block" : "none";
}
function createSearchPanel()
{
Ext.form.Field.prototype.msgTarget = 'side';
var combo_list_org_store = new Ext.data.SimpleStore( {
fields : [ "valueField", "displayField" ],
data : []
});
var combo_list_org = new Ext.form.ComboBox( {
store : combo_list_org_store,
emptyText : '请选择所属机构',
fieldLabel : '所属机构',
valueField : "valueField",
displayField : "displayField",
name : 'orgcode',
mode : 'local',
typeAhead : true,
anchor : "90%",
forceSelection : false,
triggerAction : 'all',
selectOnFocus : true
});
GindexManage.getDropDownData(function(value) {
var combo_list_org_store_data = new Array();
for ( var i = 0; i < value.list_o_org.length; i++) {
combo_list_org_store_data[i] = new Array();
combo_list_org_store_data[i][0] = value.list_o_org[i].VALUEFIELD;// valueField
combo_list_org_store_data[i][1] = value.list_o_org[i].DISPLAYFIELD;// displayField
}
combo_list_org_store
.loadData(combo_list_org_store_data);
});
var searchPanel = new Ext.FormPanel({
labelAlign: 'left',
frame:true,
title: '查询条件',
bodyStyle:'padding:0px 0px 0',
labelWidth:60,
buttonAlign:'right',
items: [{
layout:'column',
items:[{
columnWidth:1/3,
layout: 'form',
items: [ {
xtype:'textfield',
fieldLabel: '员工姓名',
name: 'emname',
anchor:'90%'
}
]
},{
columnWidth:1/3,
layout: 'form',
items: [ {
xtype:'textfield',
fieldLabel: '员工手机',
name: 'mobilenmber',
anchor:'90%'
}
]
},{
columnWidth:1/3,
layout: 'form',
items: [ combo_list_org]
}]
}],
buttons: [{
text: '查询',
/*iconCls : 'search_ico',*/
handler:function(){reloadData();}
},{
text: '重置',
/*iconCls : 'refresh_ico',*/
handler:function(){searchPanel.form.reset();}
}]
});
reloadData=function(){
if(!searchPanel.form.isValid())return;
var formLength=searchPanel.form.items.items.length;
var searchFilds=new Object();
searchFilds["start"]=0;
searchFilds["limit"]=pageSize;
for(var i=0;i没有签名';
}else{
return '显示签名';
}
return val;
}
var recordType = Ext.data.Record.create([
{name: "userid"},
{name: "emname"},
{name: "mobilenmber"},
{name: "orgname"},
{name: "image"}
]);
grid_DataStore = new Ext.data.Store({
proxy: new Ext.data.DWRProxy(ImageManage.getEmployeeList, true),
reader: new Ext.data.ListRangeReader({
totalProperty: 'totalSize',
id: 'userid'
}, recordType),
remoteSort: true
});
grid_DataStore.setDefaultSort('userid', 'asc');
var grid_sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
grid_sm,
{header: "员工姓名", dataIndex: "emname",sortable: true},
{header: "手机号码", dataIndex: "mobilenmber",sortable: true},
{header: "机构名称", dataIndex: "orgname",sortable: true},
{header: "签名图片", dataIndex: "image",renderer: change}
]);
cm.defaultSortable = true;
var grid = new Ext.grid.GridPanel({
frame: true,
title:'用户信息',
store: grid_DataStore,
cm: cm,
trackMouseOver:false,
sm: grid_sm,
loadMask: true,
iconCls : 'user_ico',
viewConfig: {
forceFit:true
},
bbar: new Ext.PagingToolbar({
pageSize:pageSize,
store: grid_DataStore,
displayInfo: true,
displayMsg: '显示 {0} - {1} ,总共 {2}',
emptyMsg:'没有内容',
firstText: '第一页',
prevText: '前一页',
nextText: '后一页',
lastText: '最后一页',
refreshText: '刷新',
items:[
'-', {
pressed: true,
text: '新增签名',
/*iconCls: 'user_add_ico', */
handler: e_add
},'-', {
pressed: true,
text: '修改签名',
/*iconCls: 'user_edit_ico', */
handler: e_eidt
},'-', {
pressed: true,
text: '删除签名',
/*iconCls: 'user_del_ico', */
handler: e_delete
}]
})
});
grid_DataStore.load({params:{start:0, limit:pageSize}});
//Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e
/*****
grid.on("cellclick",function(Grid,rowIndex,columnIndex,e){
if(columnIndex==3){
var upwin=new uploadwindow();
upwin.win.show();
}
});
******/
function e_add(btn, e){
if(grid_sm.getSelections().length==0)
{
alertMsg("请选择要修改的用户");
return;
}
if(grid_sm.getSelections().length>1)
{
alertMsg("请选择单个要修改的用户");
return;
}
var userid=grid_sm.getSelections()[0].get("userid");
window_add = openWindow("add.html?id="+userid+"",'上传签名',510,145);
}
function e_eidt(btn, e){
if(grid_sm.getSelections()[0].get("image") == null){
alertMsg("先增加签名");
return;
}
if(grid_sm.getSelections().length==0)
{
alertMsg("请选择要修改的用户");
return;
}
if(grid_sm.getSelections().length>1)
{
alertMsg("请选择单个要修改的用户");
return;
}
var userid=grid_sm.getSelections()[0].get("userid");
window_edit = openWindow("edit.html?id="+userid+"",'签名修改',510,145);
}
//function e_cipher(btn,e){
//var n_yhdh=grid_sm.getSelections()[0].get("n_yhdh");
// openWindow("cipher.html",'修改密码',300,170);
//}
function e_delete(btn, e){
if(grid_sm.getSelections().length==0)
{
alertMsg("请选择要删除签名的用户");
return;
}
var userid=new Array();
for(var i=0;i
servlet方式:
package com.copote.businessManage.uploadImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.SQLException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.copote.Frame.Sql;
import com.copote.businessManage.uploadImage.bean.ImageBean;
public class ShowPic extends HttpServlet{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
System.out.println("这里已经执行");
OutputStream os = null;
response.setContentType("text/html");
os = response.getOutputStream();
ImageBean blob = null;
try {
blob = (ImageBean) Sql.getSqlMapClient()
.queryForObject("select.image.byuserid", request.getParameter("id"));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] Buffer = new byte[4096];
ByteArrayInputStream is = new ByteArrayInputStream(blob
.getSignimg());
int size = 0;
while ((size = is.read(Buffer)) != -1) {
// System.out.println(size);
os.write(Buffer, 0, size);
}
is.close();
os.close();
}
}



Comment:


