freemarker+ajax+Spring mvc+SFTP上传文件

30 篇文章 0 订阅

由于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.csdn.net/haidage/article/details/6859716

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值