zoukankan      html  css  js  c++  java
  • xhEditor struts2实现图片上传

    xhEditor的环境搭建请参考http://blog.csdn.net/itmyhome1990/article/details/38422255,这时我们打开图片功能 是没有上传按钮的

    如果想要出现上传按钮,在xhEditor设置以下参数:

    html5Upload : false                     //此属性必须为false

    upImgUrl : "ImgUpload.action" //上传服务器接口

    onUpload : insertUpload            //服务器返回信息,JSON格式


    一、前台代码

    <script type="text/javascript">
    	$(function() {
    		$('#content').xheditor( {
    			tools : 'full',      //也可自定义tools,这里为full 
    			html5Upload : false, //此属性必须为false 否则无法上传图片
    			upImgUrl : "ImgUpload.action",
    			onUpload : uploadImg
    		});
    		function uploadImg(data) {
    			//...回调函数
    		}
    	})
    </script>
    <body>
    	<div align="center">
    		<textarea rows="20" cols="110" id="content"></textarea>
    	</div>
    </body>
    二、Struts2上传代码

    public class ImgUploadAction extends ActionSupport {
    	private String err = "";
    	private String msg;              //返回信息
    	private File filedata;           //上传文件
    	private String filedataFileName; //文件名
    
    	public String imgUpload() {
    		//获取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=gbk");
    		
    		PrintWriter out = null;
    		try {
    			out = response.getWriter();
    		} catch (IOException e1) {
    			e1.printStackTrace();
    		}
    
    		String saveRealFilePath = ServletActionContext.getServletContext().getRealPath("/upload");
    		File fileDir = new File(saveRealFilePath);
    		if (!fileDir.exists()) { //如果不存在 则创建 
    			fileDir.mkdirs();
    		}
    		File savefile;
    		savefile = new File(saveRealFilePath + "/" + filedataFileName);
    		try {
    			FileUtils.copyFile(filedata, savefile);
    		} catch (IOException e) {
    			err = "错误"+e.getMessage();
    			e.printStackTrace();
    		}
    		String fileName = request.getContextPath() + "/upload/" + filedataFileName;
    		msg = "{"err":"" + err + "","msg":"" + fileName + ""}";
    		out.print(msg); //返回msg信息
    		return null;
    	}
    
    	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;
    	}
    
    
    }
    三、Struts2配置文件

    <struts>
    	<package name="build" extends="struts-default">
    		<action name="ImgUpload" method="imgUpload"
    			class="com.itmyhome.ImgUploadAction">
    		</action>
    	</package>
    </struts>
    效果如图:





    项目演示源码下载:http://download.csdn.net/detail/itmyhome/7746271


    转载请注明出处:http://blog.csdn.net/itmyhome1990/article/details/38491205

  • 相关阅读:
    TOJ3650 Legal or Not
    Fork/Join框架之双端队列
    [每日一题] OCP1z0-047 :2013-08-26 TIMESTAMP WITH LOCAL TIME ZONE....................112
    [C++基础]C++中静态成员函数如何访问非静态成员
    HDU 1504 Disk Tree
    Android Checkbox Example
    STM32F103定时器输出PWM波控制直流电机
    SICP 习题 (1.7) 解题总结
    Linux磁盘及文件系统管理 4---- Linux文件系统挂载管理
    推荐《Linux 多线程服务器端编程》
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131262.html
Copyright © 2011-2022 走看看