jquery.uploadify图片文件上传与显示

图片上传与显示

本例子以jquery.uploadify+java+springMVC开发

1、上传HTML页面

2、在函数中设置上传参数

3、将文件存储到数据库(此处使用springMvc) 

4、将数据库中上传图片文件显示到jsp页面


1、上传HTML页面

<div id="queue"></div>
<input id="image_upload"name="image_upload" type="file"multiple="true">

2、在函数中设置上传参数

function showUploadImageDialog(){
	var setting = {
		'swf'      : curpath + '/resources/frame/uploadify/uploadify.swf',
		'uploader' : curpath + '/file/upload/uploadfile',
		'auto'     : true,
        'fileObjName'   : 'file', 
		'buttonText' : '选择上传图片',
		'fileTypeExts' : '*.jpg;*.jpeg;*.gif;*.png',
		'fileTypeDesc' : '*.jpg;*.jpeg;*.gif;*.png',
		'fileSizeLimit': '300KB',
		'multi' : false,
		'successTimeout' : 300,
		'onUploadSuccess' : function(f,d,r){
			viewImage(d);
			$('#imageId').val(d);
		},
		 'onSelect' : function(file) {
			 $('#description').val(file.name);
		 }
	};
	$('#image_upload').uploadify(setting);
    //设置上传参数
    //$("#image_upload").uploadify('settings','formData'{'id':id,'description':description,'type':type}); 
}

3、将文件存储到数据库(此处使用springMvc) 

public String saveFile(ModelMap model,MultipartHttpServletRequest request, HttpServletResponse response,
String param,String sysname){
try {
    MultipartFile ufile = request.getFile("file");
    String fileName = ufile.getOriginalFilename();
    String fileType=originalFileName.substring(fileName .lastIndexOf("    .")+1);
    String name =originalFileName.substring(0,fileName .lastIndexOf("."));

    DataSource ds = (DataSource)this.ac.getBean("dataSource");
    Connection conn = ds.getConnection();
    conn.setAutoCommit(false);
    PreparedStatement pst  =conn.prepareStatement("insert into image(id,content,name)values(?,?,?)");
    //Map<String, String[]> params = request.getParameterMap();

    pst.setString(1, id);

    pst.setBytes(2, ufile.getBytes());

    pst.setString(3,name);

    pst.executeUpdate();

    conn.commit();

    pst.close();
}

4、将数据库中上传图片文件显示到jsp页面

var path=curpath + '后台地址/id='+id+'&method=showImage';
$('#image').attr('src',path);

	public void showImage(HttpServletRequest request,HttpServletResponse response){    
	      response.setCharacterEncoding("utf-8");
	     /*response.setContentType("multipart/form-data");*/

	 File file =getImageFile(id)
	       try {
	           InputStream inputStream = newFileInputStream(file);
	           OutputStream os = response.getOutputStream();
	           
	           byte[] b = new byte[2048];
	           int length;
	           while ((length = inputStream.read(b))> 0) {
	               os.write(b, 0, length);
	           }
	 
	           os.close();
	 
	           inputStream.close();
	       } catch (FileNotFoundException e) {
	           e.printStackTrace();
	       } catch (IOException e) {
	           e.printStackTrace();
	       }

	private File getImageFile(String id) {

		conn = ds.getConnection();

		conn.setAutoCommit(false);

		stmt = conn.prepareStatement("selectname,content from image WHERE id = ?");

		stmt.setString(1, id);

		rs = stmt.executeQuery();

		rs.next();

		String tempDir = Common.getWebRootPath() + "/temp/image";

		String fileDir = tempDir + "/" + id;

		FileUtils.forceMkdir(new File(fileDir));

		String fileName = rs.getString("NAME");

		String filePath = fileDir + "/" + fileName;

		File file = new File(filePath);

		in = rs.getBlob("CONTENT").getBinaryStream();

		out = new FileOutputStream(file);

		IOUtils.copy(in, out);

		return file;

	}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值