ntko的office控件,ssm框架下上传文件到数据库和页面的回显

在这里用到了对文件流进行的操作,废话不多说,先贴代码出来

首先是文件上传到数据库,这里用到了SqlServer数据库,数据库对应数据类型是image,而JAVA实体则对应的是Byte[](比特数组)。

首先跟正常上传文件一样,页面上写一个form表单

<form method="post" enctype="multipart/form-data" name="frmWordDoc">

<input type="file" name="upLoadFile" >

</form>

这里是一个最简单的form表单,切记标红地方为必须.

如果用到了ntko插件提交方式则为:AwordEditor(此处为自己定义的ntko控件对象,根据自己的进行调整).SaveToURL("${pageContext.request.contextPath}/lcgl/openws?wjid=1","upLoadFile","","",0);

在javascript中添加如上代码也可进行提交。(切记是NTKO插件的提交方式)

  @RequestMapping("/openws")
    public void openws(Integer wjid,HttpServletRequest request,@RequestParam("upLoadFile") MultipartFile upLoadFile) throws UnsupportedEncodingException{
        Pt_Wsjd ws = new Pt_Wsjd();

  //下面是对文件流进行控制
         InputStream inputStream;  
        try {
            inputStream = upLoadFile.getInputStream();
             byte[] data = new byte[] {};
             data = inputStreamToByte(inputStream);//将文件保存到字节数组中,方法在下面

    //下面就跟普通的增加方法一样,把值放到实体中
             ws.setF_wsmc(bt);
                ws.setF_wsnr(data);

    //增加方法
                lcglservice.insWs(ws);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

private byte[] inputStreamToByte(InputStream is) throws IOException {
        ByteArrayOutputStream bAOutputStream = new ByteArrayOutputStream();
        int ch;
        while((ch = is.read() ) != -1){
        bAOutputStream.write(ch);
        }
        byte data [] =bAOutputStream.toByteArray();
        bAOutputStream.close();
        return data; 返回Byte[]数组
    }

如此 把文件转换成进制放到数据库就搞定了。

接下来我们在做页面的回显。

@RequestMapping("/getwsbyid")
    public void getWsById(Integer f_id,HttpServletResponse response,HttpSession session) throws IOException{
        Pt_Wsjd ws= lcglservice.getWsById(f_id);  //根据id查询一下数据库的值,非常普通的查询方法
        response.reset();
        response.setContentType("applcation/octet-stream");  //确定文件格式,我这里存的是一个Word文档,可根据需求自己更改。
        byte[] byt =ws.getF_wsnr();  //是比特数组接受数据库的image类型的字段,也就是我们刚加到数据库的数据
        java.io.InputStream fileDataStream = new ByteArrayInputStream(byt);  //数据转换成文件流
        javax.servlet.ServletOutputStream myOutputStream = response.getOutputStream();  //输出流
        byte[] fileData = new byte[1024];
        int readCount = 0 ;
        while((readCount=fileDataStream.read(fileData,0,1024))!=-1){
            myOutputStream.write(fileData,0,readCount);  
        }           
        myOutputStream.flush();   //刷新缓冲流
        response.flushBuffer();   
    }

这里我还是用到了ntko的插件进行回显

ntko中的回显方式 在javascript中添加setTimeout("AwordEditor.OpenFromURL(‘${pageContext.request.contextPath}/lcgl/getwsbyid‘);",200); URL括号中对应我们刚才写的回显方法即可回显成功。

如有错误,还望各路大神直接指出,接受所有的批评与意见,如有侵权,请直接联系小编,小编会在第一时间内删除侵权内容,谢谢大家。

Qq:11032609

response.reset();
        response.setContentType("applcation/octet-stream");
        byte[] byt =ws.getF_wsnr();
        java.io.InputStream fileDataStream = new ByteArrayInputStream(byt);
        javax.servlet.ServletOutputStream myOutputStream = response.getOutputStream();
        byte[] fileData = new byte[1024];
        int readCount = 0 ;
        while((readCount=fileDataStream.read(fileData,0,1024))!=-1){
            myOutputStream.write(fileData,0,readCount);
        }            
        myOutputStream.flush();
        response.flushBuffer();

原文地址:https://www.cnblogs.com/guobao-/p/9139485.html

时间: 2024-08-08 16:57:12

ntko的office控件,ssm框架下上传文件到数据库和页面的回显的相关文章

FileUpload控件如何获取要上传文件的路径

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="BorrowPage.aspx.cs" Inherits="Borrow_BorrowPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

WP8_(windows phone环境下)上传文件从C#到php接口

在windows phone环境下,将手机上的图片上传到服务端(php环境): 注意事项:在上传的地方,头文件中name,例如name= img,则在php服务端处理时 ,需要约定好 存取一致 php:$_FILES['img']['name'],如若两端的name不相同则服务端无法正确获取上传的文件: public class UploadSrv { #region 选择图片   /// <summary> /// 打开照相机 /// </summary> public void

【阿里云产品公测】ACE下上传文件永久存储实践

本帖主要内容: ;$,=VB:'   在阿里云的ACE下,我是如何实现让上传的文件永久保存的? ,%"!8T   本文以PHP为例,具体知识点如下: WD# 96V   第一,扩展服务“存储服务(Storage)”的入门基础: uzg(C#sp   第二,如何结合实际项目使用: \ne1Xu:hM   uP, iGA ?lq   2 j.6   ]8q#@%v}   写教程前,先发发牢骚吧! M.fAFL   我为什么要用云引擎ACE?因为我讨厌天天去更新系统.打补丁和查日志等等,这么专业的东西

docker在windows下上传文件到容器

我的系统是windows10,docker是用DockerToolbox工具安装的,安装完之后会默认挂载Windows的C:/Users目录,在docker里面对应路径是/c/Users,docker默认的用户路径是/c/Users/windows的登录用户名,对应windows的登录用户目录:C:/Users/windows的登录用户名. 登录Docker Quickstart Terminal之后的默认用户路径是/c/Users/windows的登录用户名,对应windows系统下的路径是C

webupload控件实现删除已上传的文件

本文摘自http://www.we7.cc/manual/dev:func:common:app:tpl_appupload_image:html<div id="uploader"> <div class="queueList"> <div id="dndArea" class="placeholder"> <div id="filePicker"><

基于SSM框架下的JAVA文件监控管理系统

每天记录学习,每天会有好心情.*^_^* 今日思考,完成一个文件监控管理系统项目,需要实现哪些功能?此类项目常见描述如下:随着信息技术突飞猛进,网络传输已经成为信息传递的主要方式,信息极端主义的手段越来越高深莫测,重要信息的监控显得十分必要.针对信息安全隐患问题,本章设计了文件监控系统,来实现对传输的重要文件进行实时监控,达到安全传输文件以防非法窃取的目的.SSM(MYECLIPSE)框架及其适合本类项目,使用MVC的思想可以极大程度减少重复工作量.和SSM(MYECLIPSE)框架最配的开发工

springmvc下上传文件

使用ajax+表单+jQuery: function sendFile() { var action = "c/goFile.do"; $("#form").ajaxSubmit( { url : action, success : function(data) { var htm = "<per>"+data "</per>" $("#content").text(data); c

AFNetworking框架_上传文件或图像server

的文本 XXXXXXXXXX在自己的论点更填写 - (void)uploadImageWithImage:(NSString *)imagePath { //上传其它所需參数 NSString *userId=XXXXXXXXXXX; NSString *token=XXXXXXXXXXX; //上传请求POST AFHTTPClient *client=[AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@""]]; NSStri

windows下上传文件到VWware的centos

1.使用Xsell 连接到centos虚拟机,可以在虚拟机使用终端查看ip地址,命令:ifconfig -a 2.远程Linux系统上需要安装lrzsz工具包  Xsell命令:yum install lrzsz 3. 然后 命令:rz  弹出窗口选择windows的文件