xheditor struts2 上传文件

POI 写word,添加标题,表格,图片,自动生成目录,合并单元格 工程地址:https://github.com/zheng-chang-wei/word package com.example.demo1.poi; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.File; import java.io.FileOutputStream; public class ... 阅读详情

注意,上传图片可能会显示不出来(如果你没放在tomcat的webapps目录下),这是由于上传图片时是默认上传到tomcat的目录下!!!

1. jsp页面

<textarea name="editor1" style="width:100%;min-height: 400px;" id="xheditor"></textarea>                   
        <script type="text/javascript">

            $(function(){
                $('#xheditor').xheditor({
                    tools:'Img',
                    skin:'vista',
                    html5Upload : false, //此属性必须为false 否则无法上传图片 
                    onUpload : uploadImg,   
                    upImgUrl:"${pageContext.request.contextPath}/plan/preplan/preplan_picture_uploadImg.action",//action请自己配置
                    upImgExt:"jpg,jpeg,gif,png"
                }); 
                function uploadImg(data) {  
                    //...回调函数  
                } 

            })
  </script>             

2. strust.xml配置(action的名字请自己配置)

        <!-- Picture拦截和结果配置 -->
        <action name="preplan_picture_*" class="com.gsafety.plan.module.actions.PictureAction" method="{1}">
            <result name="jsonObject" type="json">
                <!-- 为该Result指定参数 -->
                <param name="noCache">true</param>
                <param name="contentType">text/html</param>
                <!-- 设置只序列Action的map属性 -->
                <param name="root">jsonObject</param>
            </result>           
            <result name="jsonArray" type="json">
                <!-- 为该Result指定参数 -->
                <param name="noCache">true</param>
                <param name="contentType">text/html</param>
                <!-- 设置只序列Action的map属性 -->
                <param name="root">jsonArray</param>
            </result>                       
        </action>

3. jar包

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
  1. Action方法
public class PictureAction extends ActionSupport{
    private int id;
    private String imgUrl;//图片链接

    private String err = "";  
    private String msg;              //返回信息  
    private File filedata;           //上传文件  
    private String filedataFileName; //文件名 
    private JSONObject jsonObject = new JSONObject();
    private JSONArray jsonArray = new JSONArray();

    public String uploadImg(){
          //获取response、request对象  
        ActionContext ac = ActionContext.getContext();  
        HttpServletResponse response = (HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE);  
        HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST);  

        response.setContentType("text/html;charset=utf-8");  

//        PrintWriter out = null;  
//        try {  
//            out = response.getWriter();  
//        } catch (IOException e1) {  
//            e1.printStackTrace();  
//        }  
        /*这里的路径设置,在我的电脑上传路径是:D:\apache-tomcat-7063\wtpwebapps\plan\WEB-INF\img。
        */
        String saveRealFilePath = ServletActionContext.getServletContext().getRealPath("/WEB-INF/img");  
        System.out.println(saveRealFilePath );//这里是上传的路径
        File fileDir = new File(saveRealFilePath);  
        if (!fileDir.exists()) { //如果不存在 则创建   
            fileDir.mkdirs();  
        }  
        File savefile = new File(saveRealFilePath , filedataFileName);  
        try {  
            FileUtils.copyFile(filedata, savefile);  
        } catch (IOException e) {  
            err = "错误"+e.getMessage();  
            e.printStackTrace();  
        }  
        String fileName = request.getContextPath() + "/img/" + filedataFileName;  

        //msg = "{\"err\":\"" + err + "\",\"msg\":\"" + fileName + "\"}";  
        jsonObject.put("err", err);
        jsonObject.put("msg", fileName);        
         //返回msg信息  
        return "jsonObject"; 
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }

    public String getErr() {
        return err;
    }

    public void setErr(String err) {
        this.err = err;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public File getFiledata() {
        return filedata;
    }

    public void setFiledata(File filedata) {
        this.filedata = filedata;
    }

    public String getFiledataFileName() {
        return filedataFileName;
    }

    public void setFiledataFileName(String filedataFileName) {
        this.filedataFileName = filedataFileName;
    }

    public JSONObject getJsonObject() {
        return jsonObject;
    }

    public void setJsonObject(JSONObject jsonObject) {
        this.jsonObject = jsonObject;
    }

    public JSONArray getJsonArray() {
        return jsonArray;
    }

    public void setJsonArray(JSONArray jsonArray) {
        this.jsonArray = jsonArray;
    }





}

参考链接http://blog.youkuaiyun.com/itmyhome1990/article/details/38491205

Trae IDE项目开发全流程深度技巧与最佳实践 2026年AI开发新范式:Trae AI IDE深度解析 摘要 2026年,AI已成为软件开发的核心驱动力。字节跳动推出的AI原生IDE——Trae,从根本上重塑了开发体验,将AI作为第一公民而非附加功能。Trae通过深度集成大型语言模型和创新交互模式,解决了现代开发中的重复劳动、信息过载等核心痛点。 报告全面剖析了Trae的核心功能: 智能代码生成:支持上下文感知续写、自然语言驱动生成和多模态输入转换 对话式AI助手:提供侧边栏和行内对话模式,支持代码解释、Bug修复、重构建议等 Builder/SOLO 阅读详情

相关推荐

点云体素化算法研究-3.Voxelization 三维模型体素化

体素(voxel)即体积元素的简称,是数字数据在三维空间分割上的最小的单位。体素化就是通过创建三维体素网格来表示三维物体,是一种将无序点云变为有序点云的降采样的空间数据结构方法,便于实现点云的空间卷积。激光雷达(LiDAR)| Open3D:第五节 表面重建-体素化。

周陽讀書 2067

Xheditor+structs2+js+jquery 实现文件上传功能

 第一步:先配好struct2项目!xheditor和struct或外部框架是没有多大关系的   Struct2项目的配置我就不多说了。这里用到了struct2的Ajax文件上传。 lib包给你说下: &lt;!--StartFragment --&gt;    struct action配置:   &lt;!--StartFragment --&gt; 文件类File...

知识换金钱 199

树莓派5首次开机保姆级教程(无显示器通过VNC连接树莓派桌面)

选择 Interface Options > VNC > Yes 启用服务。2.在Windows电脑上安装VNC软件。重启树莓派:sudo reboot。3.使用VNC远程访问树莓派桌面。

qq_34184505的博客 2351

struts2 配置 xheditor

这两天要做一个业务需要使用富文本编辑器,以前用的是重量级的Fckeditor,功能太多,所以需求要求要一个轻量级的编辑器,可以上传图片和文字的简单排版即可。于是,在百度寻寻觅觅,觉得xheditor编辑器(就是csdn,我现在正在写博客的编辑器)不错。可当我在百度找配置时(struts2配置xheditor),相关的资料只有几篇博客。还写得很精简,反正我导入是有错误的,而且写得又不全...不禁感慨

小浩子的博客 1025

DANN实战:用Python手把手教你实现对抗迁移学习(附完整代码)

本文通过Python实战教程,手把手教你实现DANN对抗迁移学习模型,以解决领域偏移问题。文章详细解析了领域对抗神经网络的核心机制,包括梯度反转层和领域判别器的构建,并提供了从数据准备、模型搭建到训练评估的完整代码,帮助开发者快速掌握这一强大的无监督领域自适应技术。

net55的博客 317

CXL3.0 CDAT(Coherent Device Attributes Table)

在说明CDAT之前,先讲一下CXL中的DOE类型:CXL协议里定义了两种DOE的类型,一种是Compliance就是合规性测试的内容,还有一种就是CDAT(一致性属性表)Memory_Info_Valid是CXL设备的内存配置完成标志,位于DVSEC(Designated Vendor-Specific Extended Capability)的CXL Range X Size Low寄存器中(X为1或2)。

Summer的博客 1437

xheditor在Struts2中的上传配置

          此前的一篇文章介绍了xheditor使用servlet实现上传的接口,但在Struts2的应用中由于Struts2封装了request和response使得,此前写的程序无法获取数据。可能通过一些修改可以另前面的程序继续使用,但是我这里介绍一种完全使用Struts2标准的xheditor配置方法。其实这个方法在xheditor的官方论坛有讲过,但是由于讲述并不清楚,可能对于一些...

leemo207的博客 193

C#上位机开发入门:从基础到进阶的全方位指南

C#作为一门现代化编程语言,具备强大的功能和广泛的生态支持,适合用于开发各种类型的上位机应用。通过学习并掌握UI开发、通信协议、多线程编程、数据库操作等技能,你可以打造出稳定、易用、性能优异的上位机软件。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 8315

xheditor 与strut2 配置使用并提供上传图片!

js文件中如下: $(pageInit); function pageInit(){ //这是用来在线编写代码的插件 以后程序题会用得到 内置在full样式里了 即用tools:'full'就可以调用 var plugins={ Code:{c:'btnCode',t:'代码',h:1,e:function(){ var _this=this; var h...

weixin_33923148的博客 165

Qt入门教程【数据类型篇】数值类型

Qt中的数值类型

小鱼酱的博客 1万+

手把手教你学simulink(24.4)--Simulink在机器人视觉场景下的应用——基于视觉的物体跟踪与抓取

该系统集成了图像处理、目标检测、运动估计、路径规划、抓取控制和视觉反馈等多个功能模块,能够实现实时处理视觉数据、检测并跟踪移动物体、规划最优路径并控制机械臂进行精确抓取。本项目的目标是使用Simulink和MATLAB设计一个基于视觉的物体跟踪与抓取系统,该系统能够实时处理图像数据,检测并跟踪移动物体,规划最优的抓取路径,并控制机械臂进行精确抓取。为了验证系统的性能,我们在Simulink中搭建了基于视觉的物体跟踪与抓取系统的仿真模型。

MHD0815的博客 257

xheditor集成struts2上传图片

废话不说了,直接上代码,代码比较乱,紧体现xheditor与struts2上传, 第一步: 到官网下载最新版本xheditor插件,或者从附件中下载 第二步:jsp页面 注意:jsp中 代码 html5Upload:false,upMultiple:'1' 这块很重要,屏蔽掉html5上传,现在大部分是IE6,8。IE9才支持html5,其他浏览器百度去 [code="html"] ...

hacker5077的专栏 177

模型实战(16)之StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

yohnyang的博客 1770

android struts2 图片上传,xhEditor struts2实现图片上传

如果想要出现上传按钮,在xhEditor设置以下参数:html5Upload : false //此属性必须为falseupImgUrl : "ImgUpload.action" //上传服务器接口onUpload : insertUpload //服务器返回信息,JSON格式一、前台代码$(function() {$('#conten...

weixin_35676877的博客 191

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

xheditor 上传功能的实现

xheditor 是一款比较好用的文本编辑器,具体如何使用这里不在说了,网上有很多,也可以查看自带demos文件。这里说说文件的上传。页面 &lt;script type="text/javascript" src="&lt;c:url value="/js/jquery.js"/&gt;"&gt;&lt;/script&gt; &lt;script type="text/j

ffhu2015r的博客 310

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

xheditor实现上传

package com.yuxuan.action; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.springframework.context.annotation.Scope; import org.springfra

1131

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

xhEditor struts2实现图片上传

xheditor的环境搭建请参考xxx ,这时我们打开图片功能 是没有上传按钮的

itmyhome的专栏 3455

struts2中添加xheditor编辑器,上传图片

1、在jsp中添加            2.编写upload.action                 private File filedata; private String filedataContentType; private String filedataFileName; pri

yhhazr的专栏 3421

xheditor+struts 实现图片上传

1.由于页面使用了DWZ框架,所以JSP的实现如下 ${element.element.text} 2.JS实现 $(document).ready( function(){ $('.editor').xheditor({ html5Upload:false, upImgUrl: "general/uploadImgAction", upImgExt: "jpg,j

在路上 353

struts2+xheditor+上传图片功能

去官网下载http://xheditor.com/ 新建index.jsp 代码如下 String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";     b

linfanhehe的专栏 3829

xheditor集成struts1上传图片

废话不说了,直接上代码,代码比较乱,紧体现xheditor与struts1和2的上传,struts2在下一篇文章 第一步: 到官网下载最新版本xheditor插件,或者从附件中下载 第二步:jsp页面 注意:jsp中 代码 html5Upload:false,upMultiple:'1' 这块很重要,屏蔽掉html5上传,现在大部分是IE6,8。IE9才支持html5,其他浏览器百度去 ...

hacker5077的专栏 218

xheditor 与strut2 配置使用并提供上传图片!

js文件中如下: [css] view plaincopy $(pageInit);         function pageInit(){          //这是用来在线编写代码的插件  以后程序题会用得到  内置在full样式里了  即用tools:'full'就可以调用       var plugins={      

u011203602的专栏 633

利用xhEditor插入图片

xhEditor具备在编辑框中插入图片和音频,但是默认情况时关闭的,可以通过如下形式来实现在编辑框中插入图片并显示在编辑框中。下面实现利用struts上传图片,需要注意的是xhEditor上传图片时参数名为filedata。 1、JSP页面 [code="java"][/code] 2、action [code="java"]import java.io.File; import jav...

iteye_5856的博客 367

[ java ] xheditor 与strut2 配置使用并提供上传图片!

js文件中如下: $(pageInit); function pageInit(){ //这是用来在线编写代码的插件 以后程序题会用得到 内置在full样式里了 即用tools:'full'就可以调用 var plugins={ Code:{c:'btnCode',t:'代码',h:1,e:function(){ var _this=this; var htmlC

杨有梦的博客 1633
上一篇: Hibernate关系(双向一对一、一对多、多对多和自身多对多)映射注解整理
下一篇: JAVA全部消除HTML标签/消除部分HTML标签
Qssn丶
博客等级 码龄11年 88粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值