文件上传

前端代码:

vue  main.js :

import axios from 'axios';
Vue.prototype.$axios = axios
js  代码:
<label>仅支持png,jpg,jpeg格式,上传大小不能超过1M</label><br/> 
<input type="file" @change="getFile($event)" multiple  accept='image/png,image/jpg,image/jpeg' />
<button @click="submitForm($event)">上传</button> 

multiple  多个文件上传
accept   上传文件类型
<script> 
var vm = new Vue {
  data(){
    files:[], 		 
  },
methods: {
      submitForm: function (event) { 
		var _this=this;
		var url ="http://127.0.0.1/fileUpload/upload";
		var fd = new FormData()
		for(var i=0;i<_this.files.length;i++){
                     fd.append('file'+i, _this.files[i])
		}				
		let config = {
		    headers: {
		    'Content-Type': 'multipart/form-data'
		    }
		} 
		_this.$axios.post(url,fd,config).then((result) => {        
                        zdalert("系统提示","上传成功") 
                  }).catch((err) =>{
			console.log(err)
			zdalert("系统提示","上传失败") 
                  });			 
      },
      getFile: function (even) {
		this.files = event.target.files; 
		for(var i=0;i<this.files.length;i++){
			console.log(this.files[i].size)
			if(this.files[i].size>1048576){
				this.files=[];
				zdalert("系统提示","图片大小超过上限!");
				break;
			}
		}
      },
    }
}

后端代码:

创建依赖:

                <dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
后台接受文件
@RestController
@RequestMapping("/fileUpload")
public class FileUploadController {
    private Logger logger = Logger.getLogger(FileUploadController.class);
    /*多图片上传,上传大小不能超过1M*/
    @RequestMapping(value="/upload",method= RequestMethod.POST)
    @ResponseBody
    public String upload(MultipartHttpServletRequest request)throws IOException{
        String result = "";
        Map map=request.getFileMap();
        List<String> list=new ArrayList();
        for(int i=0;i<map.size();i++){
            MultipartFile file = (MultipartFile)map.get("file"+i);
            String filename = file.getOriginalFilename();
            String[] splits = filename.split("\\.");
            String type = splits[(splits.length-1)];
            String name=filename.substring(0,filename.lastIndexOf("."));
            InputStream inputStream = null;
            FileOutputStream outputStream = null;
            try {
                inputStream = file.getInputStream();
                // 给新文件拼上时间毫秒,防止重名
                long now = System.currentTimeMillis();
                File fil = new File("c:/", name+"-" + now + "."+type);
                fil.createNewFile();

                outputStream = new FileOutputStream(fil);

                byte temp[] = new byte[1024];
                int size = -1;
                while ((size = inputStream.read(temp)) != -1) { // 每次读取1KB,直至读完
                    outputStream.write(temp, 0, size);
                }

                logger.info("File load success.");
                result = "File load success.";
            } catch (IOException e) {
                logger.warn("File load fail.", e);
                result = "File load fail.";
                return result;
            }finally {
                outputStream.close();
                inputStream.close();
            }
        }
        return result;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值