分类:原创 share 发布 2009.12.22 22:12:47Tag : java,Blob,DB2,Tomcat,ext,DWR,iBATIS commentComment:0
10
dig bury

存储页面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();
	}
}
我也来说2句,请不要发表违反法律的言论

姓名

Email(必填)

主页(不要加http://)