经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTMLCSS » CSS » 查看文章
bootstrap fileinput +springmvc图片上传-krajee
来源:cnblogs  作者:胡叔叔  时间:2018/10/18 8:44:05  对本文有异议

引入的文件

  1. <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css" />
  2.  
  3. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css">
  4. <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css" />
  5. <!-- if using RTL (Right-To-Left) orientation, load the RTL CSS file after fileinput.css by uncommenting below -->
  6. <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/css/fileinput-rtl.min.css" media="all" rel="stylesheet" type="text/css"/>
  7. <!-- optionally uncomment line below if using a theme or icon set like font awesome (note that default icons used are glyphicons and `fa` theme can override it) -->
  8. <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" media="all" rel="stylesheet" type="text/css" />
  9. <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  10. <!-- piexif.min.js is needed for auto orienting image files OR when restoring exif data in resized images and when you
  11. wish to resize images before upload. This must be loaded before fileinput.min.js -->
  12. <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/js/plugins/piexif.min.js" type="text/javascript"></script>
  13. <!-- sortable.min.js is only needed if you wish to sort / rearrange files in initial preview.
  14. This must be loaded before fileinput.min.js -->
  15. <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/js/plugins/sortable.min.js" type="text/javascript"></script>
  16. <!-- purify.min.js is only needed if you wish to purify HTML content in your preview for
  17. HTML files. This must be loaded before fileinput.min.js -->
  18. <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/js/plugins/purify.min.js" type="text/javascript"></script>
  19. <!-- popper.min.js below is needed if you use bootstrap 4.x. You can also use the bootstrap js
  20. 3.3.x versions without popper.min.js. -->
  21. <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
  22. <!-- bootstrap.min.js below is needed if you wish to zoom and preview file content in a detail modal
  23. dialog. bootstrap 4.x is supported. You can also use the bootstrap js 3.3.x versions. -->
  24. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" type="text/javascript"></script>
  25.  
  26.  
  27. <!-- the main fileinput plugin file -->
  28. <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/js/fileinput.min.js"></script>
  29. <!-- optionally uncomment line below for loading your theme assets for a theme like Font Awesome (`fa`) -->
  30. <!-- script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/themes/fa/theme.min.js"></script -->
  31. <!-- optionally if you need translation for your language then include locale file as mentioned below -->
  32. <script type="text/javascript" src="../../static/bootstrap/js/zh.js"></script> <!--这个可以去bootstrap cdn找-->

 

 

 

首先创建一个div

  1. <div class="file-loading">
  2. <input id="input-file-1" name="fileName" multiple type="file" accept="image/*" >
  3. </div>

javascript代码

  1. <script>
  2. $("#input-file-1").fileinput({
  3. language: "zh",
  4. uploadUrl: "/goods/add",
  5. autoOrientImage: true,
  6. multiple:true,
  7. maxFileCount:4,
  8. uploadAsync:false,
  9. uploadExtraData:{id:'kv-1',goodsName:"123"}, //额外添加的数据,后台有request.getPara取得
  10. allowedFileExtensions: ["jpg", "jpeg", "gif", "png","bmp"],//单位为kb,如果为0表示不限制文件大小
  11. layoutTemplates:{
  12. // actionDelete: '',//设置为空字符串可以去掉对应的按钮
  13. actionUpload:'',
  14. },
  15. browseClass: 'btn btn-primary'
  16. }).on('fileuploaded', function(event, data) {
  17. //上传成功
  18. alert("成功");
  19. })
  20. .on("fileuploaderror",function (event,data,msg) {
  21. //上传失败
  22. alert("失败");
  23. })
  24. /* .on("filepreremove", function(jqXHR) {
  25. var abort = false;
  26. if (confirm("确定删除此图片?")) {
  27. abort = true;
  28. }
  29. return abort; // 您还可以发送任何数据/对象,你可以接收` filecustomerror
  30. });*/
  31.  
  32. </script>

后台代码

  1. @ResponseBody
  2. @RequestMapping(value="/add",method = RequestMethod.POST)
  3. public String insertGoods(@RequestParam("fileName") MultipartFile imageFile[], //同步上床 获取多张图片参数
  4. /*Goods goods,*/
  5. HttpServletRequest request){
  6. System.out.println("hello world");
  7. Goods goods = new Goods();
  8. if(imageFile!=null){
  9. String imgUrl="";
  10. for(int k=0;k<imageFile.length;k++) {
  11. imgUrl += saveImageFile(imageFile[k], request)+",";
  12. }
  13. goods.setImgUrl(imgUrl);
  14. }
  15. Date date=new Date();
  16. goods.setUploadTime(date);
  17. GoodsEnum anEnum=goodsService.insertGoods(goods);
  18. if(anEnum.equals(GoodsEnum.INSERT_GOODS_SUCCESS)){
  19. return JSONUtil.toJSON("success");
  20. }else{
  21. return JSONUtil.toJSON("error");
  22. }
  23. }
  1. private String saveImageFile(MultipartFile imageFile, HttpServletRequest request) {
  2. //获取文件上传到服务器的路径
  3. String uploadUrl=getRealPath(request)+"static/uploadImg/";
  4. System.out.println("文件路径为:"+uploadUrl);
  5. //获取从客户端传过来的文件名
  6. String filename=imageFile.getOriginalFilename();
  7. //判断文件上传的路径是否存在,若不存在,则需要创建它
  8. File dir=new File(uploadUrl);
  9. if(!dir.exists()){
  10. dir.mkdirs();
  11. }
  12. //targetFile最终上传的文件,先判断文件是否存在
  13. File targetFile=new File(uploadUrl+filename);
  14. if(!targetFile.exists()){
  15. //如果文件不存在,我们尝试创建它
  16. try {
  17. targetFile.createNewFile();
  18. }catch (IOException e){
  19. e.printStackTrace();
  20. }
  21. }
  22. //使用MultipartFile的transferTo方法保存文件
  23.  
  24. try {
  25. imageFile.transferTo(targetFile);
  26. }catch (IllegalStateException e){
  27. e.printStackTrace();
  28. }catch (IOException e){
  29. e.printStackTrace();
  30. }
  31. return "img/"+filename;
  32. }

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号