由于freemarker的ftl文件没法iframe进来文件(或者我不知道怎么iframe,今天一直报找不着,刚用freemarker 觉得各种不适应,如:类似request.getContextPath()就不知道如何实现),上传图片的文件域就只能包含在当前form中(如果不用ajax,当时特别想用ajax,就是不知道还有ajaxfileupload.js这个插件),form和form在上传文件时不能嵌套(嵌套后$("#fileForm").submit()没有反应)只能将两个form并排,但如果要达到前台上传图片也不跳转时就必须得ajax。
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。 form里面的input的值以2进制的方式传过去,所以request就得不到值了
ajax上传图片
$.ajaxFileUpload({ //处理文件上传操作的服务器端地址(可以传参数,已亲测可用) url:'fileUpload.do?uname=fanyuna', secureuri:false,
//是否启用安全提交,默认为false fileElementId:'myBlogImage',
//文件选择框的id属性 dataType:'text',
//服务器返回的格式,可以是json或xml等 success:function(data,
status){ //服务器响应成功时的处理函数 data
= data.replace("<PRE>",
''); //ajaxFileUpload会对服务器响应回来的text内容加上<pre>text</pre>前后缀 data
= data.replace("</PRE>",
''); data
= data.replace("<pre>",
''); data
= data.replace("</pre>",
''); //本例中设定上传文件完毕后,服务端会返回给前台[0`filepath] if(data.substring(0,
1) == 0){ //0表示上传成功(后跟上传后的文件路径),1表示失败(后跟失败描述) $("img[id='uploadImage']").attr("src",
data.substring(2)); $('#result').html("图片上传成功<br/>"); }else{ $('#result').html('图片上传失败,请重试!!'); } }, error:function(data,
status, e){ //服务器响应失败时的处理函数 $('#result').html('图片上传失败,请重试!!'); } });Spring Mvc
Controller
MultipartHttpServletRequest multipartRequest
= (MultipartHttpServletRequest) request;
CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("uimage");
//文件名
String fileName = file.getFileItem().getName();
//图片的高、宽
BufferedImage bi=ImageIO.read( file.getInputStream() );
int width=bi.getWidth();
int
height=bi.getHeight();
xml
<bean
id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--
指定所上传文件的总大小不能超过800KB......注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --> <property
name="maxUploadSize"
value="800000"/> </bean>SFTP
mkdir 每次只能创建一级目录,不能一次创建多级目录
判断目录是否存在 可通过ls()看文件夹下是否有内容来处理
具体可参考
http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html
http://blog.youkuaiyun.com/haidage/article/details/6859716

本文介绍如何在Freemarker模板中实现文件上传,并利用ajax进行无刷新上传处理。探讨了表单enctype属性的作用及配置方法,通过示例展示了使用ajaxFileUpload插件完成图片上传的具体步骤。
2452

被折叠的 条评论
为什么被折叠?



