• 用agular2做文件上传功能杂记-遁地龙卷风


    (-1)功能描述

       写一个功能,前台发起执行请求,后台执行任务,前台可以获取执行的进度,并取得最后的执行状态。

    (0)angular2 $http文件上传

      这里之所以不用angular-file-upload是为了共用代码。

    var time = new Date().getTime();
    var obj = {
    	method:"POST",
    	url:"csvFile",
    	headers : { 'Content-Type':undefined},
    	transformRequest: function() {
    	  var formData = new FormData();
    	  formData.append('file', $('#uploadBtn')[0].files[0]);
    	  formData.append('time',time);
    	  return formData;
    	  }
    	}
    

      

      'Content-Type':undefined 

      transformRequest

      关于这两个部分网上有一些说法,本人能力有限,只知道这么做能出效果,不知道他们说的对不对,还望高人指点

    (1)如何处理多线程

      因为要提供返回进度和最后状态的接口,所以后台用HashMap来存储信息,已前台传入的毫秒数做标记

      取消了很多成员变量的使用,改为传参。

      还用一点需要注意,因为前台发出执行请求,随后就会发出得到执行进度请求,而在返回进度方法中我写成了下面这个样子

    这样写埋下了祸根,好心办了坏事,气人的是这种错误不会直观的显示出来。排查也费了好大劲。

    Integer rate = rateMap.get(time) ;
    		if(rate !=null)
    		{
    			if(rate == 100)
    			{
    				rateMap.remove(time);
    				return 100;
    			}
    			else
    			{
    				return rate;
    			}
    			
    		}
    		else
    		{
    			return 100;
    		}
    

      最后改成当为null时返回0

    (2)如何导出maven项目群、多模块项目、多个maven项目

        其实只要按正常操作导出主项目(单个项目)就可以了。我百度....

    (3)插入数据

      这里又犯了一个错误,因为会有许多为null的数据,之前的写法是当某一个字段为null,就不会执行dao层代码

      其实这里只要id不为null就好,于是更改了代码,非主要数据为null程序仍可以执行dao层代码

  • 相关阅读:
    数学
    数学
    Computer Science
    数学
    Computer Science
    元学习
    数学
    数学
    数学
    数学
  • 原文地址:https://www.cnblogs.com/resolvent/p/6395238.html
Copyright © 2020-2023  润新知