百度 UEditor--自定义上传文件路径及读取文件

jsp中替换掉上传和预览图片的URL

注意第一句判断,注意要用项目的相对URL

return ‘/sirdifoa/kentra/file/uploadImage.do‘;

if(UE.Editor.prototype._bkGetActionUrl == undefined)UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
    UE.Editor.prototype.getActionUrl = function(action) {
    //判断路径   这里是config.json 中设置执行上传的action名称
        if (action == ‘uploadimage‘) {
            return ‘/sirdifoa/kentra/file/uploadImage.do‘;
        } else if (action == ‘uploadvideo‘) {
            return ‘‘;
        } else {
            return this._bkGetActionUrl.call(this, action);
        }
    }

自定义的上传、预览图片的方法。

@RequestMapping("/uploadImage")
	@ResponseBody // 这里upfile是config.json中图片提交的表单名称
	public Map<String, String> uploadImage(@RequestParam("upfile") CommonsMultipartFile upfile,
			HttpServletRequest request) throws IOException {
		// 文件原名称
		String fileName = upfile.getOriginalFilename();
		// 为了避免重复简单处理
		String nowName = new Date().getTime() + "_" + fileName;
		if (!upfile.isEmpty()) {
			String ueditorImagePath = PropertyUtil.readValue(Const.ueditorImagePath);
			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
			String formatDay = simpleDateFormat.format(new Date());
			// 上传位置路径
			String path0 = ueditorImagePath + "/" +formatDay+"/"+ nowName;
			// 按照路径新建文件
			java.io.File newFile = new java.io.File(path0);
			java.io.File newFile1 = new java.io.File(ueditorImagePath+ "/" +formatDay);
			if (!newFile1.exists()){
				boolean mkdir = newFile1.mkdirs();
			}
			// 复制
			FileCopyUtils.copy(upfile.getBytes(), newFile);
		}
		// 返回结果信息(UEditor需要)
		Map<String, String> map = new HashMap<String, String>();
		// 是否上传成功
		map.put("state", "SUCCESS");
		// 现在文件名称
		map.put("title", nowName);
		// 文件原名称
		map.put("original", fileName);
		// 文件类型 .+后缀名
		map.put("type", fileName.substring(upfile.getOriginalFilename().lastIndexOf(".")));
		// 文件路径
		map.put("url", "/kentra/file/getImage.do?imgName="+nowName);
		// 文件大小(字节数)
		map.put("size", upfile.getSize() + "");
		return map;
	}

	/**
	 * 
	 * 读取文件
	 * 
	 */

	@RequestMapping("/getImage")
	public void readImg(String imgName, HttpServletResponse response)throws Exception {
		// 设置文件的返回类型
		response.setContentType("image/*");
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
		String formatDay = simpleDateFormat.format(new Date());
		// 文件路径(windows下是\\,linux下是//,都必须是绝对路径)
		String imgPath = PropertyUtil.readValue(Const.ueditorImagePath) + "/" +formatDay+"/"+imgName;
		// java中用File类来表示一个文件
		java.io.File newFile = new java.io.File(imgPath);
		// 测试这个文件路径是否存在(也就是这个文件是否存在)
		if (!newFile.exists()) {
			return;
		}
		// FileUtils.readFileToByteArray(File file)把一个文件转换成字节数组返回
		response.getOutputStream().write(FileUtils.readFileToByteArray(newFile));
		// java在使用流时,都会有一个缓冲区,按一种它认为比较高效的方法来发数据:
		// 把要发的数据先放到缓冲区,缓冲区放满以后再一次性发过去,而不是分开一次一次地发.
		// 而flush()表示强制将缓冲区中的数据发送出去,不必等到缓冲区满.
		response.getOutputStream().flush();
		response.getOutputStream().close();
	}

config.json中加一个路径前缀:

 /* 上传图片配置项 */
    "imageActionName": "uploadimage", /* 执行上传图片的action名称 */
    "imageFieldName": "upfile", /* 提交的图片表单名称 */
    "imageMaxSize": 20480000, /* 上传大小限制,单位B */
    "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
    "imageCompressEnable": true, /* 是否压缩图片,默认是true */
    "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
    "imageInsertAlign": "none", /* 插入的图片浮动方式 */
    "imageUrlPrefix": "/sirdifoa", /* ==============图片访问路径前缀 ==================*/
时间: 2024-08-04 12:22:57

百度 UEditor--自定义上传文件路径及读取文件的相关文章

百度Ueditor 图片上传无反应,显示上传0张,不能点确定

解决办法: \Data\Ueditor\php\Uploader.class.php 190行左右 /** * 获取文件扩展名 * @return string */ private function getFileExt() { date_default_timezone_set("PRC"); return strtolower( strrchr( $this->file[ "name" ] , '.' ) ); } 添加了date_default_tim

百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源

个人官网.公司项目都需要 可视化编辑器,百度UEditor做得很不错,就用的这个.项目后台用到了SpringMVC.Freemarker,开发过程中部署在Jetty,线上部署用Tomcat,最后可能配置Nginx代理.     在实际使用过程中,遇到了太多的问题,因此有必要梳理和总结下. 1. 先说百度UEditor在Java环境中的使用:1.1   Html页面或者Freemarker模版里,引入百度UEditor的相关JS和CSS,如下 <script type="text/javas

SpringBoot集成百度UEditor图片上传后直接访问404解决办法

SpringBoot项目上传图片一般是上传至远程服务器存储,开发过程中可能会上传至当前项目的某个静态目录中,此时就会遇到这个问题,文件在上传之后直接访问并不能被访问到,必须重新加载项目. 首先分析一下原因: 我们知道,如果使用类似 /upload/image/1.jpg 这种格式进行图片的访问的时候,SpringBoot读取的并不是本项目中直接的静态目录,而是在进行编译的时候生成target目录下的文件,如下图所示: 那么问题就来了,我们在运行的过程中上传一个图片的话,并不能重新加载当前这个项目

解决百度ueditor配置上传目录为外部目录时,项目启动访问不到图片的问题。

如图所示,公司项目用到了百度的ueditor,配置的上传目录并不在项目根目录下,而是在外部目录中.于是在上传图片时,出现了无法获取图片的问题. 解决方法:添加该目录至tomcat项目部署目录中,如下图所示. 原文地址:https://www.cnblogs.com/yjry-th/p/10943160.html

ASP.NET MVC 文件上传和路径处理

ASP.NET MVC 文件上传和路径处理总结 目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传地址的变化 一.上传文件和重复文件处理 文件处理的原则是:不在数据库中保存文件,只在数据库中保存文件信息(Hash值等).采取文件的MD5重命名文件在一般情况足够处理文件的重复问题,强迫症倾向则可以考虑将MD5和其他摘要算法结合. public static string Save(HttpPost

百度编辑器ueditor给上传的图片添加水印

百度编辑器本身是没有为上传图片添加水印的功能,想要在上传的时候添加图片水印,也很简单.以 ueditor 1.2.6 为例,打开php目录下面的imageUp.php文件,查找"$info = $up->getFileInfo();",在这句代码的下面加入以下代码: /* 添加水印 start */ $water_img = "watermark.png"; //水印文件(替这里换成你要的水印) $img_min_w = 350; //添加水印需要图片最小达到

ASP.NET MVC 文件上传和路径处理总结和Demo下载

目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传地址的变化 一.上传文件和重复文件处理 文件处理的原则是:不在数据库中保存文件,只在数据库中保存文件信息(Hash值等).采取文件的MD5重命名文件在一般情况足够处理文件的重复问题,强迫症倾向则可以考虑将MD5和其他摘要算法结合. public static string Save(HttpPostedFileBase file, string

Django(十九)文件上传:图片上传(后台上传、自定义上传)、

一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings.py 因为图片也属于静态文件,所以保存到static目录下. MEDIA_ROOT=os.path.join(BASE_DIR,"static/media") 2)在static目录下创建media目录,再创建应用名称的目录,此例为app1 F:\Test\django-demo\pro

用百度webuploader分片上传大文件

一般在做文件上传的时候,都是通过客户端把要上传的文件上传到服务器,此时上传的文件都在服务器内存,如果上传的是视频等大文件,那么服务器内存就很紧张,而且一般我们都是用flash或者html5做异步上传,如果文件比较大的话,即便是客户端显示文件已经上传了100%,还是会有一个比较长时间的等待,而且当前页面对服务器的请求也会被阻塞. 正常情况下,一般都是在长传完成后,在服务器直接保存. 1 public void ProcessRequest(HttpContext context) 2 { 3 co