使用fileinput与angularjs上传文件

本文介绍了一个使用Angular实现文件上传的应用案例,包括必要的文件准备、form表单与Angular代码的编写,以及服务器端处理上传文件的方法。

目录

文件准备

首先必要的是引入fileinput的相关js和cs文件

<link type="text/css" rel="stylesheet" href="css/fileinput.css" />
<script src=" js/fileinput.js"></script>
<script  src=" js/fileinput_locale_zh.js"></script>
<script src="jquery.min.js"></script>
<script src="angular.js"></script> 

form表单的代码:

<input id="fileupload" type="file"
class="file-loading ">

angular的代码:

页面你拖拽了文件之后点击上传就行,


//这一段代码是必须和页面同时加载的,否则页面会出现空白,所以需要再进行一次封装,参考最后的目录
angular.element("#fileupload").fileinput({
language : 'zh',//中文化
uploadUrl : "localhost:8080/find/fileUpload", //服务器地址
allowedFileExtensions : [ 'xlsx' ], // 允许的类型
maxFileSize : 2000,//文件的最大size
maxFileCount: 1, //表示允许同时上传的最大文件个数,配置只一个
enctype: 'multipart/form-data',
});
//上传之后服务器传回的信息,判断是否上传成功
angular.element("#fileupload").on('fileuploaded',function(e,data){
   // 注意 data.response 才是你服务器传回的数据,不是data
   var resp=data.response;
   if(resp.code>0){
      alert('上传成功');
   }else{
      alert('上传不成功');
   }
});

服务器端代码:

采用最原始的HttpServletRequest去获取文件

@RequestMapping( name="find/fileUpload"  )
@ResponseBody
    public ResultData springUpload(HttpServletRequest request) throws IllegalStateException, IOException
    { 
         //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
        CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
                request.getSession().getServletContext());
        //检查form中是否有enctype="multipart/form-data"
        if(multipartResolver.isMultipart(request))
        {
            //将request变成多部分request
            MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
           //获取multiRequest 中所有的文件名
            Iterator iter=multiRequest.getFileNames();

            while(iter.hasNext())
            {
                //一次遍历所有文件
                MultipartFile file=multiRequest.getFile(iter.next().toString());
                if(file!=null)
                {
                // 你自己的逻辑操作
                    String path="E:/springUpload"+file.getOriginalFilename();
                    //上传
                    file.transferTo(new File(path));
                }

            }

        } 
        ResultData rd=new ResultData("1000","上传成功");
        return  rd; 
    }

angular自启动函数写法

第一种

 (function() { 
    function logger() { 需要dom加载之后,自动执行的函数}
})();

第二种

<div ng-controller="test">
     <div data-ng-init="load()" >
            // 你需要初始化的代码
      </div>
</div>
myapp.controller('test', ['$scope', 
    function($scope) {
        $scope.load = function() {
             alert('code here');
        }
}]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值