ueditor图片上传mvc
A. MVC5项目 ueditor 1.4.3无法上传问题
我来回答你们吧,这个问题,我也弄了许久,很是纳闷啊,gbk版的没有问题,然后完整版的也没有问题,就只有utf-8版的上传功能不行,这些都是【在服务端所有配置有一样的前提下】,然后我用文件比较工具比较了下完整版asp目录及utf-8版asp目录中的文件,完全一模一样!!!靠,实在搞不懂怎么回事,我勒去,吐血。。。。
解决这个问题的办法,你去下载完整版,然后把完整版中的asp文件夹覆盖到utf-8版相同目录下
B. ueditor 怎么自定义上传文件的路径啊求指导,,最好是有源码
UEditor是由网络WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。
开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。
网络UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,有效降低了企业的开发成本。
优点
1、体积小巧,性能优良,使用简单
2、分层架构,方便定制与扩展
3、满足不同层次用户需求,更加适合团队开发
4、丰富完善的中文文档
5、多个浏览器支持:Mozilla, MSIE, FireFox, Maxthon,Safari 和Chrome
6、更好的使用体验
7、拥有专业QA团队持续支持,已应用在网络各大产品线上
使用步骤
1.添加jar包 jar包位置:文件根目录下jsp的lib文件夹下,把jar包复制到web-inf下的lib文件夹下buildpath
2.修改config.js中的URL路径,修改为UEidtor插件在自己工程中的正确根路径
3.在jsp文件中先引入配置文件config.js然后再源码文件all.js(注意顺序)
4.加载容器和实例化容器
1.修改config.js配置文件URL为插件根目录,一般是绝对路径。
2.修改config.json中上传图片配置项中的访问路径前缀为项目名称,根据情况修改上传文件路径和访问路径。
配置正确之后UEditor有上传功能帮助我们上传图片。
但是上传路径会在项目部署的临时文件夹下。 tomcat取消部署后,上传文件就会和项目部署文件一起被删除
3.实现把图片上传到自定义路径
在处理上传后的文件名称的时候注意不要出现中文
要不然还需要做处理才能正确读取文件!
4.(1)首先在jsp中覆盖UEidtor获取路径的方法
//覆盖UEditor中获取路径的方法
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
//判断路径 这里是config.json 中设置执行上传的action名称
if (action == 'uploadimage') {
return 'http://localhost:8080/maven-web/uploadImage.do';
} else if (action == 'uploadvideo') {
return '';
} else {
return this._bkGetActionUrl.call(this, action);
}
}
(2)首先在springmvc配置文件中配置
<!-- 上传配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
在controller中定义上传和读取文件的方法
/**
* SpringMVC 用的是 的MultipartFile来进行文件上传
* 这里用@RequestParam()来指定上传文件为MultipartFile
* @throws IOException
*/
@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(!upimage.isEmpty()){
//上传位置路径
String path0 = "D:\\eclipseworkspace\\maven-web\\src\\main\\webapp\\upload\\"+nowName;
//按照路径新建文件
File newFile = new File(path0);
//复制
FileCopyUtils.(upimage.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", "/"+nowName+"/getImage.do");
//文件大小(字节数)
map.put("size", upfile.getSize()+"");
return map;
}
/**
* 读取文件
*/
@RequestMapping("{imgName}/getImage")
public void readImg(@PathVariable("imgName") String imgName, HttpServletResponse response)
throws Exception {
//设置文件的返回类型
response.setContentType("image/*");
//文件路径(windows下是\\,linux下是//,都必须是绝对路径)
String imgPath="D:\\eclipseworkspace\\maven-web\\src\\main\\webapp\\upload\\"+imgName;
//java中用File类来表示一个文件
File image = new File(imgPath);
//测试这个文件路径是否存在(也就是这个文件是否存在)
if (!image.exists()) {
return;
}
//FileUtils.readFileToByteArray(File file)把一个文件转换成字节数组返回
response.getOutputStream().write(FileUtils.readFileToByteArray(image));
//java在使用流时,都会有一个缓冲区,按一种它认为比较高效的方法来发数据:
//把要发的数据先放到缓冲区,缓冲区放满以后再一次性发过去,而不是分开一次一次地发.
//而flush()表示强制将缓冲区中的数据发送出去,不必等到缓冲区满.
response.getOutputStream().flush();
response.getOutputStream().close();
}
C. 百度 Ueditor 在线编辑器 无法上传图片或者文件 提示上传错误
用网页编辑工具打开网络编辑器这个文件:ueditor/dialogs/image/image.html 找到以下代码:
maxNum:32, // 最大上传多少个文件 backgroundUrl:'', //背景图片,留空默认 listBackgroundUrl:'', //预览图背景,留空默认
buttonUrl:'', //按钮背景,留空默认
compressSide:editor.options.compressSide, //等比压缩的基准,0为按照最长边,1为按照宽度,2为按照高度
compressLength:editor.options.maxImageSideLength, // 能接受的最大边长,超过该值Flash会自动等比压缩
//url:'../server/upload/php/up.php', // 上传处理页面的url地址,用于PHP语言
url:'../../server/upload/asp/up.asp', // 上传处理页面的url地址,用于ASP语言
// url:../server/upload/asp/up.asp', // 上传处理页面的url地址,用于ASP语言
解决方法之二:修改上传路径 打开up.asp这个文件。
uploadPath = "../../../uploadfiles/" '上传保存路径,修改上传路径 ' uploadPath = "E:\UEditor对编辑器\" '上传保存路径
picSize = 500 '允许的文件大小,单位KB picType = ".jpg,.gif,.png,.bmp" '允许的图片格式
D. 百度ueditor上传文件后台如何用springmvc的controller控制,不用自带的controller.jsp。
● <context:compnent-scan>
Xml代码
<!-- 切记,这不是必需的!除非你把注解的 Controller 一个个的注册到容器中。相信大家还是喜欢用 context:compnent-scan 吧。不要认为在 Spring MVC 中才提到 context:component-scan,就认为它只能扫描 @Controller。component-scan 默认扫描的注解类型是 @Component,不过,在 @Component 语义基础上细化后的 @Repository, @Service 和 @Controller 也同样可以获得 component-scan 的青睐 -->
<context:component-scan base-package="org.zachary.spring3.anno.web" />
● HandlerMapping
Xml代码
<bean class="org.springframework.web.servlet.mvc.annotation.">
<description>
这点是必需的还是非必需的呢?
如果定义了 ,它就可以将请求来的 url 和被注解了 @RequesMapping 的指进行匹配。当然,说这句话的前提是定义 的优先级比定义了其它的 HandlerMapping 的优先级要高(如果定义了其它的话)。
如果没有定义 ,并不代表不能映射到相应的 handler 上。因为如果你定义了其它的 HandlerMapping,请求过来的 url 和注解了的 @RequestMapping 里的值正好能匹配上,那么没有 ,@Controller 一样可以如鱼得水的被捕获到。
当然,如果你要使用基于注解的 @Controller,最好还是老老实实地注册 。
</description>
</bean>
● HandlerAdaptor
Xml代码
<bean class="org.springframework.web.servlet.mvc.annotation.">
<description>
和上面的 HandlerMapping 一样,是必需的还是非必需的呢?
Spring MVC 中,如果我们没有注册任何 HandlerAdaptor 到容器中,注意,我说的是任何。那么 DispatcherServlet 将启用后备的几个默认使用的 HandlerAdaptor 实现,包括:
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
org.springframework.web.servlet.mvc.
org.springframework.web.servlet.mvc.
看见没,如果我们没有注册任何的 HandlerAdaptor,框架会准备 的。可是由于某些原因,我们需要为某些 HandlerAdaptoer 进行一些定制化,即在容器中注册了某个 HandlerAdaptor,那么很抱歉,框架只会启用你注册的那个,而框架本身准备的不会被启用。所以,你一旦为某个 HandlerMapping 进行了定制化,请别忘了把其它的 HandlerAdaptor 也注册进来,即便这些不需要定制化。否则的话,后果你是可以想象的。当然,除非你确保你真的只需要那一个你注册进容器的 HandlerAdaptor,否则,我再啰嗦一遍,别忘了把其它的 HandlerAdaptor 也注册进来。
</description>
</bean>
E. 百度ueditor能不能上传pdf
可以上传的,如果不能上传,在js代码里设置下;一般网络官方下载的ueditor编辑器,默认都是带了PDF上传功能的,参考如下官方代码:
//默认值:
[
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
]
F. UEditor文件上传与SpringMVC上传配置冲突问题
建议去掉spring 的上传配置直接使用UE
G. 如何把ueditor中的多图上传功能
将ueditor的图片上传类修改为Tp的上传类,
window.UEDITOR_CONFIG.imageUrl="{:U('Upload/uploadimg')}"; //图片上传提交地址
window.UEDITOR_CONFIG.imagePath='__ROOT__/Upload/images/ueditor/';//编辑器调用图片的地址
H. 将ueditor中的图片上传用struts2实现
可以用的。
//Struts2 请求 包装过滤器
MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper) this.request;
//获得文件过滤器
File file = wrapper.getFiles("uploadfile")[0];
//获得上传的文件名
String originalName = wrapper.getFileNames("uploadfile")[0];
//file转is
InputStream is = new FileInputStream(file);
以上的步骤希望对你有帮助,我就是用的struts2,
uploadfile是上传的时候设置的那个名称
imageUrl:URL+"jsp/imageUp.jsp" //图片上传提交地址
imagePath:"" //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
imageFieldName:"uploadfile" //对应上面的那个uploadfile
I. ueditor富文本编辑器上传图片怎么配置
1. 前端配置项
前端需要配置 serverUrl 参数,修改 ueditor.config.js 里的 serverUrl 参数,改成服务器端路径,参考:URL + 'php/controller.php'
2. 后端配置项
后端配置项在 php/config.json 里配置,不同的上传有各自的配置项。
修改上传图片路径的参数是 imagePathFormat ,改成你的图片文件夹路径即可。
J. 如何使用ueditor上传照片
在ueditor目录下找到uedior.config.js,找到如下三行:
,imageUrl: "<%=path %>/controller.json" //图片上传提交后台对应的地址,路径固定为*/controller.*
,imagePath: "<%=path %>/ueditor/" //图片在服务器上的存储目录
,imageFieldName: "upload" //后台对应接收image的参数名
或者:
var ueditor = UE.getEditor('myEditor',{
imageUrl: "<%=path %>/servlet/UploadServlet", //图片上传提交后台对应的地址
imagePath: "<%=path %>/ueditor/", //图片在服务器上的存储目录
imageFieldName: "upload" //后台对应接收image的参数名
});
注意:记得在uedior.config.js配置文件中把"serverUrl"注释掉
在/ueditor/_src/plugins/simpleupload.js文件中,把link = me.options.imageUrlPrefix + json.url; 改为link = getRootPath()+json.url;
最后配置服务器返回的数据格式,这需要这服务器端进行修改。对应于后台接收上传图片的那个controller,返回的格式需如下:
{'url':'60391393848223.jpg','title':'p1999637039.jpg','original':'p1999637039.jpg','state':'SUCCESS'}
注意:url用相对路径,这样就OK了。