bootstrap-fileinput图片,文档,视频上传

图片上传(bootstrap做了很好的封装):
有兴趣的话可以看一下官网的demo:http://plugins.krajee.com/file-input-ajax-demo/4

  1. html页面引用文件上传js(fileinput.js),css(fileinput.css)
<!-- 引入jq,bootstrap -->
<!-- 图片上传即时预览插件 -->
<link rel="stylesheet" href="../js/bjs/fileinput.min.css">
<script type="text/javascript" src="../js/bjs/fileinput.min.js"></script>
<!-- 这个是汉化-->
<script type="text/javascript"src="../js/bjs/fileinput_locale_zh.js"></script>

2,加入标签:
下载bootstrap fileinput组件源码:
https://github.com/kartik-v/bootstrap-fileinput/

<input type="file" name="myfile" data-ref="url2" class="myfile" value="" /> 
<input type="hidden" name="url2" value="">

3,ajax

//视频图片上传
function eventInit0(){
	//alert(1);
	 $(".myfile").fileinput({
	        //上传的地址
	        uploadUrl:"/ssm/video/uploadVideoFile",
	        uploadAsync : true, //默认异步上传
	        showUpload : false, //是否显示上传按钮,跟随文本框的那个
	        showRemove : false, //显示移除按钮,跟随文本框的那个
	        showCaption : true,//是否显示标题,就是那个文本框
	        showPreview : true, //是否显示预览,不写默认为true
	        dropZoneEnabled : false,//是否显示拖拽区域,默认不写为true,但是会占用很大区域
	        //minImageWidth: 50, //图片的最小宽度
	        //minImageHeight: 50,//图片的最小高度
	        //maxImageWidth: 1000,//图片的最大宽度
	        //maxImageHeight: 1000,//图片的最大高度
	        //maxFileSize: 0,//单位为kb,如果为0表示不限制文件大小
	        //minFileCount: 0,
	        maxFileCount : 1, //表示允许同时上传的最大文件个数
	        enctype : 'multipart/form-data',
	        validateInitialCount : true,
	        previewFileIcon : "<i class='glyphicon glyphicon-king'></i>",
	        msgFilesTooMany : "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
	        allowedFileTypes : [ 'image' ],//配置允许文件上传的类型
	        allowedPreviewTypes : [ 'image' ],//配置所有的被预览文件类型
	        allowedPreviewMimeTypes : [ 'jpg', 'png', 'gif' ],//控制被预览的所有mime类型
	        language : 'zh'
	    })
	    //异步上传返回结果处理
	    $('.myfile').on('fileerror', function(event, data, msg) {
	    	//alert(data);
	    	
	        console.log("fileerror");
	        console.log(data);
	    });
	    //异步上传返回结果处理
	    $(".myfile").on("fileuploaded", function(event, data, previewId, index) {
	    	
	    	videoImgUrl = "/file/videoImg/"+data.response.url;
	    	
	    	//debugger
	    	
	        console.log("fileuploaded");
	        var ref = $(this).attr("data-ref");
	        $("input[name='" + ref + "']").val(data.response.url);
	        //debugger

	    });

	    //同步上传错误处理
	    $('.myfile').on('filebatchuploaderror', function(event, data, msg) {
	        console.log("filebatchuploaderror");
	        console.log(data);
	    });

	    //同步上传返回结果处理
	    $(".myfile").on("filebatchuploadsuccess",
	            function(event, data, previewId, index) {
	    	
	                console.log("filebatchuploadsuccess");
	                console.log(data);
	            });

	    //上传前
	    $('.myfile').on('filepreupload', function(event, data, previewId, index) {
	        console.log("filepreupload");
	    });
}


controller

/**
	 * @see 视频图片上传
	 * @author zyy
	 */
	@RequestMapping(value = {"video/uploadVideoFile"}, method = { RequestMethod.POST })
	@ResponseBody
	public Map<String, Object> uploadVideoFile(MultipartFile myfile)
	            throws IllegalStateException, IOException {
	        // 原始名称
	        String oldFileName = myfile.getOriginalFilename(); // 获取上传文件的原名
	        // 存储图片的虚拟本地路径(这里需要配置tomcat的web模块路径,双击猫进行配置)
	        String saveFilePath = "D://eclipse//workspace//ssmSources//videoImg";
	        // 上传图片
	        if (myfile != null && oldFileName != null && oldFileName.length() > 0) {
	            // 新的图片名称
	            //String newFileName = UUID.randomUUID() + oldFileName.substring(oldFileName.lastIndexOf("."));
	        	//String newFileName = oldFileName.substring(oldFileName.lastIndexOf("."));
	        	// 新图片
	            File newFile = new File(saveFilePath + "\\" + oldFileName);
	            // 将内存中的数据写入磁盘
	            myfile.transferTo(newFile);
	            // 将新图片名称返回到前端
	            Map<String, Object> map = new HashMap<String, Object>();
	            map.put("success", "成功啦");
	            map.put("url", oldFileName);
	            return map;
	        } else {
	            Map<String, Object> map = new HashMap<String, Object>();
	            map.put("error", "图片不合法");
	            return map;
	        }
	    }

文档上传:

<input type="file" id="testfile" name="pdfFileAddress" data-ref="Purl2" multiple />
<input type="hidden" name="Purl2" value="">
$('#testfile').fileinput({
       language: 'zh',
       uploadUrl: '/ssm/videoAddress/savePdfAddress',
       showCaption: true,
       showUpload: true,
       showRemove: true,
       showClose: true,
       layoutTemplates:{
           actionDelete: ''
       },
       browseClass: 'btn btn-primary'
   });
   //异步上传返回结果处理
   $('#testfile').on('fileerror', function(event, data, msg) {
       console.log("fileerror");
       console.log(data);
   });
   //异步上传返回结果处理
   $("#testfile").on("fileuploaded", function(event, data, previewId, index) {
   	//debugger
   	videopdfUrl = "/file/video/pdf/"+ data.response.url;
   	
       var ref = $(this).attr("data-ref");
       $("input[name='" + ref + "']").val(data.response.url);
   });

controller

/**
		 * @see 文档上传
		 * @author zyy
		 */
		@RequestMapping(value = {"videoAddress/savePdfAddress"}, method = { RequestMethod.POST })
		@ResponseBody
		public ModelMap savePdfAddress( @RequestParam("pdfFileAddress")MultipartFile pdfFileAddress,
	            HttpServletRequest request, HttpServletResponse response) {
	        ModelMap map = new ModelMap();
	        String paFileName = pdfFileAddress.getOriginalFilename();
	        
	        String saveFilePath = "D://eclipse//workspace//ssmSources//video//pdf";
	        
	        if (pdfFileAddress != null &&paFileName != null && paFileName.length() > 0) {
	        //try {
	            //FtpUtil ftpUtil = new FtpUtil();
	            //FTPClient ftp = ftpUtil.getConnectionFTP(UploadFileUrlUtil.HOST_NAEM, UploadFileUrlUtil.PORT,UploadFileUrlUtil.USER_NAME, UploadFileUrlUtil.PASSWORD);
	            //String filename = FtpUtil.getFileName(videoFileAddress);
	            //boolean bool = ftpUtil.uploadFile(ftp,UploadFileUrlUtil.GetPath(UploadFileUrlUtil.VIDEO_PATH) , filename,videoFileAddress.getInputStream());
	           // if (bool) {
	                //String url = saveFilePath  + paFileName;
	                //map.put("videoAddress", url);
	               // map.put("videoName", paFileName);
	                //System.out.println("上传成功!");
	               // boolean boolClose = ftpUtil.closeFTP(ftp);
	                //if (boolClose) {
	                  //  System.out.println("关闭ftp连接成功!");
	                //} else {
	                   // System.out.println("关闭ftp连接失败!");
	                //}
	                
	                File newF = new File(saveFilePath + "\\" + paFileName);
	                //newFile。
		            // 将内存中的数据写入磁盘
	                try {
	                	pdfFileAddress.transferTo(newF);
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} 
		            // 将新图片名称返回到前端
		            //Map<String, Object> map = new HashMap<String, Object>();
		            map.put("success", "成功啦");
		            map.put("url", paFileName);
		            //return map;
	            } else {
	                System.out.println("上传失败!");
	            }
				return map;

	        //} catch (Exception e1) {
	            // TODO Auto-generated catch block
	           // e1.printStackTrace();
	       // }
	        //return ReturnUtil.Success("加载成功", map, null);
	}

视频上传

<input id="input-repl-3a"  name="videoFileAddress" data-ref="url2" type="file" accept="mp4" />
<input type="hidden" name="url2" value="">

ajax.js

$("#input-repl-3a").fileinput({
        dropZoneTitle : "请上传小于150M的视频!",
        uploadUrl : "/ssm/videoAddress/saveVideoAddress",
        language : "zh",
        autoReplace : true,
        showCaption : false,
        showUpload : true,
        overwriteInitial : true,
        showUploadedThumbs : true,
        //showPreview:false,                   //显示上传图片的大小信息
        maxFileCount : 1,
        minFileCount:1,
        maxFileSize : 153600,//文件最大153600kb=150M 
        initialPreviewShowDelete : false,
        showRemove : false,//是否显示删除按钮
        showClose : false,
        layoutTemplates : {
            actionUpload:'',
        }, 
        allowedFileExtensions : [ "mp4","avi","dat","3gp","mov","rmvb"],
        previewSettings : {
            image : {
                width : "100%",
                height : "100%"
            },
        }
    });
	//异步上传返回结果处理
    $('#input-repl-3a').on('fileerror', function(event, data, msg) {
        console.log("fileerror");
        console.log(data);
    });
    //异步上传返回结果处理
    $("#input-repl-3a").on("fileuploaded", function(event, data, previewId, index) {
    	//debugger
    	videoUrl = "/file/video/videoAd/"+ data.response.url;
    	
        var ref = $(this).attr("data-ref");
        $("input[name='" + ref + "']").val(data.response.url);
    });

controller

/**
		 * @see 视频上传
		 * @author zyy
		 */
		@RequestMapping(value = {"videoAddress/saveVideoAddress"}, method = { RequestMethod.POST })
		@ResponseBody
		public ModelMap saveVideoAddress( MultipartFile videoFileAddress,
	            HttpServletRequest request, HttpServletResponse response) {
	        ModelMap map = new ModelMap();
	        String paFileName = videoFileAddress.getOriginalFilename();
	        
	        String saveFilePath = "D://eclipse//workspace//ssmSources//video//videoAd";
	        
	        if (videoFileAddress != null &&paFileName != null && paFileName.length() > 0) {
	        //try {
	            //FtpUtil ftpUtil = new FtpUtil();
	            //FTPClient ftp = ftpUtil.getConnectionFTP(UploadFileUrlUtil.HOST_NAEM, UploadFileUrlUtil.PORT,UploadFileUrlUtil.USER_NAME, UploadFileUrlUtil.PASSWORD);
	            //String filename = FtpUtil.getFileName(videoFileAddress);
	            //boolean bool = ftpUtil.uploadFile(ftp,UploadFileUrlUtil.GetPath(UploadFileUrlUtil.VIDEO_PATH) , filename,videoFileAddress.getInputStream());
	           // if (bool) {
	                //String url = saveFilePath  + paFileName;
	                //map.put("videoAddress", url);
	               // map.put("videoName", paFileName);
	                //System.out.println("上传成功!");
	               // boolean boolClose = ftpUtil.closeFTP(ftp);
	                //if (boolClose) {
	                  //  System.out.println("关闭ftp连接成功!");
	                //} else {
	                   // System.out.println("关闭ftp连接失败!");
	                //}
	                
	                File newFile = new File(saveFilePath + "\\" + paFileName);
	                //newFile。
		            // 将内存中的数据写入磁盘
	                try {
						videoFileAddress.transferTo(newFile);
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} 
		            // 将新图片名称返回到前端
		            //Map<String, Object> map = new HashMap<String, Object>();
		            map.put("success", "成功啦");
		            map.put("url", paFileName);
		            //return map;
	            } else {
	                System.out.println("上传失败!");
	            }
				return map;

	        //} catch (Exception e1) {
	            // TODO Auto-generated catch block
	           // e1.printStackTrace();
	       // }
	        //return ReturnUtil.Success("加载成功", map, null);
	}

三种上传思想都是一样的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值