webuploader 实现图片批量上传功能附实例代码

网友投稿 365 2023-03-10


webuploader 实现图片批量上传功能附实例代码

1、导入资源

2、jsP代码

class="c-red">*

项目名称:

class="c-red">*

placeholder="" id="" name="proName" readonly="readonly">

class="btn btn-default btn-uploadstar radius ml-10">开始上传

class="c-red">*

项目发票上传:

class="c-red">*

或将照片拖到这里,单次最多可选300张

0%

onClick="article_add('','invoiceVo/save?&projectId=${projectId}&invoiceScan=','10001');"

class="btn btn-primary radius" type="button">

  保存  

3、Js代码

注意:

4、controller代码

/**

* 跳转到上传发票的页面

* @param proName

* @param map

* @return

*/

@RequestMapping(value = "/uploadhttp://" )

public String invoiceUpload(String proName,Long id,Map map){

map.put("proName", proName);

projectService.getProject(id);

map.put("projectId", id);

return "project/invoiceUpload";

}

/**

* 上传发票并保存导数据库

* @param file

* @param request

* @param response

* @return

*/

@ResponseBody

@RequestMapping(value = "/news_uploder", method ={RequestMethod.POST,RequestMethod.GET}, produces = "application/json; charset=utf-8")

public JSONObject uploder(@RequestParam MultipartFile[] file,Long projectId,HttpServletRequest request,HttpServletResponse response){

String flag=null;

JSONObject jsonObject = new JSONObject();

try {

WebuploaderUtil webuploaderUtil=new WebuploaderUtil();

webuploaderUtil.upload(file[0], "upload/invoice/", request);

flag=webuploaderUtil.getFileName();

jsonObject.put("filePath", flag);

jsonObject.put("status", "success");

} catch (Exception e) {

e.printStackTrace();

}

return jsonObject;

}

5、工具类

package com.softjx.util;

/**

*Project Name: QDLIMAP

*File Name: WebuploaderUtil.java

*Package Name: com.ltmap.platform.cms.util

*Date: 2017年4月13日 下午6:30:45

*Copyright (c) 2017,578888218@qq.com All Rights Reserved.

*/

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartFile;

/**

*Title: WebuploaderUtil

*Description:

*@Company: 励图高科

*@author: 刘云生

*@version: v1.0

*@since: JDK 1.8.0_40

*@Date: 2017年4月13日 下午6:30:45

*/

public class WebuploaderUtil {

private String allowSuffix = "jpg,png,gif,jpeg";//允许文件格式

private long allowSize = 2L;//允许文件大小

private String fileName;

private String[] fileNames;

public String getAllowSuffix() {

return allowSuffix;

}

public void setAllowSuffix(String allowSuffix) {

this.allowSuffix = allowSuffix;

}

public long getAllowSize() {

return allowSize*1024*1024;

}

public void setAllowSize(long allowSize) {

this.allowSize = allowSize;

}

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

public String[] getFileNames() {

return fileNames;

}

public void setFileNames(String[] fileNames) {

this.fileNames = fileNames;

}

/**

*

* @Title: getFileNameNew

* @Description: TODO

* @param: @return

* @return: String

* @author: 刘云生

* @Date: 2017年4月14日 上午10:17:35

* @throws

*/

private String getFileNameNew(){

SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");

return fmt.format(new Date());

}

/**

*

* @Title: uploads

* @Description: TODO

* @param: @param files

* @param: @param destDir

* @param: @param request

* @param: @throws Exception

* @return: void

* @author: 刘云生

* @Date: 2017年4月14日 上午10:17:14

* @throws

*/

public void uploads(MultipartFile[] files, String destDir,HttpServletRequest request) throws Exception {

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;

try {

fileNames = new String[files.length];

int index = 0;

for (MultipartFile file : files) {

String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);

int length = getAllowSuffix().indexOf(suffix);

if(length == -1){

throw new Exception("请上传允许格式的文件");

}

if(file.getSize() > getAllowSize()){

throw new Exception("您上传的文件大小已经超出范围");

}

String realPath = request.getSession().getServletContext().getRealPath("/");

File destFile = new File(realPath+destDir);

if(!destFile.exists()){

destFile.mkdirs();

}

String fileNameNew = getFileNameNew()+"."+suffix;//

File f = new File(destFile.getAbsoluteFile()+"\\"+fileNameNew);

file.transferTo(f);

f.createNewFile();

fileNames[index++] =basePath+destDir+fileNameNew;

}

} catch (Exception e) {

throw e;

}

}

/**

*

* @Title: upload

* @Description: TODO

* @param: @param file

* @param: @param destDir

* @param: @param request

* @param: @throws Exception

* @return: void

* @author: 刘云生

* @Date: 2017年4月14日 上午10:16:16

* @throws

*/

public void upload(MultipartFile file, String destDir,HttpServletRequest request) throws Exception {

String path = request.getContextPath();

//http://localhost:8088/huahang

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;

try {

String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);

int length = getAllowSuffix().indexOf(suffix);

if(length == -1){

throw new Exception("请上传允许格式的文件");

}

if(file.getSize() > getAllowSize()){

throw new Exception("您上传的文件大小已经超出范围");

}

String realPath = request.getSession().getServletContext().getRealPath("/")+"/";

File destFile = new File(realPath+destDir);

if(!destFile.exists()){

destFile.mkdirs();

}

String fileNameNew = getFileNameNew()+"."+suffix;

File f = new File(destFile.getAbsoluteFile()+"/"+fileNameNew);

file.transferTo(f);

f.createNewFile();

//包含网站的全路径http://localhost:8080/QDLIMAP/upload/user/20170414104142667.png

//fileName = basePath+destDir+fileNameNew;

//返回相对路径upload/user/20170414104142667.png

fileName = destDir+fileNameNew;

} catch (Exception e) {

throw e;

}

}

}

总结

以上所述是给大家介绍的webuploader 实现图片批量上传功能附实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:windows下更新npm和node的方法
下一篇:什么叫开源接口管理平台(开源接口管理工具)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~