首页前端开发JavaScriptBootstrap FileInput实现图片上传功能

Bootstrap FileInput实现图片上传功能

时间2024-01-31 19:16:02发布访客分类JavaScript浏览832
导读:收集整理的这篇文章主要介绍了Bootstrap FileInput实现图片上传功能,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文实例为大家分享了Bootstrap Filein...
收集整理的这篇文章主要介绍了Bootstrap FileInput实现图片上传功能,觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了Bootstrap Fileinput实现图片上传功能的具体代码,供大家参考,具体内容如下

htML代码:

div class="form-group">
     label class="col-sm-2 control-label">
    图片/label>
     div class="col-sm-8">
      input id="filesInput" tyPE="file" multiple data-browse-on-zone-click="true" class="file-loading" accept="image/*" />
  input id="resources" name="resources" th:value="${
record.picUrls}
    " type="hidden">
    //获取上传的图片路径,$("#filesInput").val()获取不到,用隐藏的input来获取 /div>
    /div>
    

引入js和css文件

link href="/ajax/libs/bootstrap-fileinput/fileinput.css" rel="stylesheet" type="text/css"/>
script th:src="@{
/js/jquery.min.js}
    ">
    /script>
script th:src="@{
/js/bootstrap.min.js}
    ">
    /script>
script th:src="@{
/ajax/libs/bootstrap-fileinput/fileinput.js}
    ">
    /script>
    

js代码:

VAR List = new Array();
//定义一个全局变量去接受文件名和id$(function () {
     var picStr = [http:...,http:....];
var picStrconfig = [{
caption: "11111", width: "120px", fileid:"123456", url: "deleteData", type:"image", key: "1"}
    ,........];
$('#filesInput').fileinput({
 theme: 'fas', language: 'zh', uploadUrl: ctx + 'bike/record/uploadData', uploadAsync: true, //默认异步上传 showUpload: true, //是否显示上传按钮 overwrITeInitial: false, showRemove : false, //显示移除按钮 // showPreview : true, //是否显示预览 showCaption: false,//是否显示标题 browseClass: "BTn btn-Primary", //按钮样式 dropZoneEnabled: false,//是否显示拖拽区域 maxFileCount: 5, //表示允许同时上传的最大文件个数 enctype: 'multipart/form-data', validateInitialCount:true, layoutTemplates: {
actionUpload: ''}
    , maxFilesNum: 5, fileType: "any", AllowedPReviewTypes: ['image'], previewFileIcon: "i class='glyphicon glyphicon-king'>
    /i>
", initialPreviewAsData: true, initialPreview: picStr, //初始化回显图片路径 initialPreviewConfig: picStrConfig //配置预览中的一些参数 }
).on("fileuploaded", function (event, data, previewId, index) {
     var response = data.response;
     var filePath = data.response.filePath;
 //文件上传成功返回的文件名,可返回自定义文件名 List.push({
 FileName: filePath, KeyID: previewId }
    ) // alert(response.filePath);
     // $("#fileMd5").val(response.fileMd5);
     // $("#version").val(response.newVersionName);
     var resources = $('#resources').val();
 if (!resources){
      $("#resources").val(response.filePath);
 }
else{
      $("#resources").val(resources+"^_^"+response.filePath);
 }
  }
).on('filepredelete', function(event, data, previewId, index) {
 //删除原图片之前的触发动作  }
).on('filedeleted',function (event, data, previewId, index) {
    //删除原图片之后的动作 var resources = $("#resources").val();
     var respone = previewId.responseJSON;
 if(respone.code == 0){
      var deleteName = "/"+data;
      if(resources.indexOf("^_^"+deleteName)>
-1){
       $("#resources").val("^_^"+resources.replace(deleteName,""));
       resources = $("#resources").val();
  }
      if(resources.indexOf(deleteName+"^_^")>
-1){
       $("#resources").val(resources.replace(deleteName+"^_^",""));
       resources = $("#resources").val();
  }
      if(resources.indexOf(deleteName)>
-1){
       $("#resources").val(resources.replace(deleteName,""));
       resources = $("#resources").val();
  }
 }
}
).on('filepreupload', function(event, data, previewId, index) {
     var form = data.form, files = data.files, extra = data.extra,  response = data.response, reader = data.reader;
}
).on("filesuccessremove", function (event, data, previewId, index) {
     var resources = $("#resources").val();
     for (var i = 0;
     i  List.length;
 i++) {
  if (List[i].KeyID == data) {
       if(resources.indexOf("^_^"+List[i].FileName)>
-1){
        $("#resources").val("^_^"+resources.replace(List[i].FileName,""));
        resources = $("#resources").val();
   }
       if(resources.indexOf(List[i].FileName+"^_^")>
-1){
        $("#resources").val(resources.replace(List[i].FileName+"^_^",""));
        resources = $("#resources").val();
   }
       if(resources.indexOf(List[i].FileName)>
-1){
        $("#resources").val(resources.replace(List[i].FileName,""));
        resources = $("#resources").val();
   }
   List[i].KeyID = "1"  }
 }
}
);}
    )

java代码:

/**  * 上传文件*/ @RequestMapping("/uploadData") @ResponseBody public MapString, Object>
 uploadData(HttpServletRequest request, HttpServletResponse response) throws Exception{
      request.setCharacterEncoding("UTF-8");
      MapString, Object>
     JSON = new HashMapString, Object>
    ();
      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
       /** 页面控件的文件流* */  MultipartFile multipartFile = null;
      Map map =multipartRequest.getFileMap();
      for (Iterator i = map.keySet().iterator();
     i.hasNext();
) {
       Object obj = i.next();
       multipartFile=(MultipartFile) map.get(obj);
   }
      /** 获取文件的后缀* */  String filename = multipartFile.getOriginalFilename();
       InputStream inputStream;
      String path = "";
      String fileMd5 = "";
  try {
       /** 文件上传到存储库中 **/   inputStream = multipartFile.getInputStream();
       File tmpFile = File.createTempFile(filename,   filename.substring(filename.lastIndexOf(".")));
       fileMd5 = Files.hash(tmpFile, @R_512_766@.md5()).toString();
       FileUtils.copyInputStreamToFile(inputStream, tmpFile);
       /** 上传到 MinIO上 **/   path = minioFileUtil.uploadCustomize(multipartFile.getInputStream(), filename.substring(filename.lastIndexOf(".")), "",multipartFile.getContentType());
       /** 上传 到 阿里云oss **///   path = AliOSSUtils.getInstance().multpartFileUpload(multipartFile,"bike");
       tmpFile.delete();
   }
 catch (Exception e) {
       e.printStackTrace();
       LOGger.error("上传失败",e);
       json.put("fileMd5", fileMd5);
       json.put("message", "上传失败");
       json.put("status", false);
       json.put("filePath", path);
       return json;
  }
      json.put("fileMd5", fileMd5);
      json.put("message", "上传成功");
      json.put("status", true);
      json.put("filePath", path);
      json.put("key", UUIDGenerator.getUUID());
      return json;
 }
    
/** * 删除文件文件 */@RequestMapping("/edit/deleteData/{
id}
")@ResponseBody@Transactional(rollbackFor = Exception.class)public AjaxResult deleteData(@PathVariable("id")String id, HttpServletRequest request) throws Exception{
     String key = request.getParameter("key");
     Record record = recordservice.getById(id);
     String picUrls = record.getPicUrls();
     String deleteName = "/" + key;
     if (picUrls.indexOf("^_^" + deleteName) >
 -1) {
      picUrls = "^_^" + picUrls.replace(deleteName, "");
 }
     if (picUrls.indexOf(deleteName + "^_^") >
 -1) {
      picUrls = picUrls.replace(deleteName + "^_^", "");
 }
     if (picUrls.indexOf(deleteName) >
 -1) {
      picUrls = picUrls.replace(deleteName, "");
 }
     record.setPicUrls(picUrls);
 if (recordMapper.updatePicsById(record) == 1) {
     /** 先删除数据库中的图片路径 再删除图片存储的源文件。**/  minioUtil.removeObject(bucketName, key);
      return success(key);
 }
     return error();
}
    

修改 fileInput 源码:

self._handler($el, 'click', function () {
  if (!self._validateMinCount()) {
       return false;
  }
      self.ajaxAborted = false;
      self._raise('filebeforedelete', [vKey, extraData]);
  //noinspection JSUnresolvedVariable,JSHint  $.modal.confirm("确定删除原文件?删除后不可恢复",function () {
 //初始化回显的图片在删除时弹出提示框确认。  if (self.ajaxAborted instanceof Promise) {
   self.ajaxAborted.then(function (result) {
    if (!result) {
         $.ajax(settings);
    }
   }
    );
  }
 else {
   if (!self.ajaxAborted) {
        $.ajax(settings);
   }
  }
  }
) }
    );
}
    );
    

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:
  • Bootstrap Fileinput文件上传组件用法详解
  • JS文件上传神器bootstrap fileinput详解
  • Bootstrap fileinput文件上传预览插件使用详解
  • Bootstrap中的fileinput 多图片上传及编辑功能
  • Bootstrap的fileinput插件实现多文件上传的方法
  • bootstrapfileinput实现文件自动上传
  • 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)
  • 详解bootstrap-fileinput文件上传控件的亲身实践
  • Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
  • BootStrap fileinput.js文件上传组件实例代码

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

BootstrapFileInput图片上传"

若转载请注明出处: Bootstrap FileInput实现图片上传功能
本文地址: https://pptw.com/jishu/594368.html
一文秒懂nodejs中的异步编程 c语言输入五个数如何求平均值?

游客 回复需填写必要信息