动画
上传图片-客户端
ng-file-upload
- 安装 - 1 
 2- bower install ng-file-upload-shim --save(for non html5 suppport) 
 bower install ng-file-upload --save
- 导入js文件 - 1 
 2- <script src="ng-file-upload-shim(.min).js"></script> <!-- for no html5 browsers support --> 
 <script src="ng-file-upload(.min).js"></script>
- 加入依赖模块 
1
angular.module('personalZhaoPin',['ngFileUpload']);
- 前端页面
| 1 | ``` | 
- 控制器代码
| 1 | ``` | 
图片剪切
- 安装 - 1 - bower install ngImgCrop 
- 导入文件 - 1 
 2
 3- <script src="ng-img-crop.js"></script> 
 <link rel="stylesheet" type="text/css" href="ng-img-crop.css">
- 指令参数 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <img-crop
    image="{string}"                 //需要截取的图片变量名
    result-image="{string}"          //截取后所赋值的变量名
   [change-on-fly="{boolean}"]       //是否实时更新用户截取图像的预览,若为否,则会等用户停止动作后更新预览的图像
   [area-type="{circle|square}"]     //截取图像框的形状(圆形或正方形)
   [area-min-size="{number}"]        //截取图像框的最小面积
   [result-image-size="{number}"]    //截取后图像的大小
   [result-image-format="{string}"]  //截取后图像的格式
   [result-image-quality="{number}"] //截取后图像的质量
   [on-change="{expression}"]        
   [on-load-begin="{expression"]
   [on-load-done="{expression"]
   [on-load-error="{expression"]
></img-crop>
>
>
2
3
4
#### 服务器端代码
1. 安装formidable
    npm intall formidable --save
1
2. post 路由代码
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
    if (err) {
        response.locals.error = err;
        // response.render("uploads");
        return;
    }
    userDAO.getUserById(fields.email,function (rr) {
        if(rr[0].num==1){
            res.send('用户已存在');
        }else{
            console.log("fields>>>"+JSON.stringify(fields));
            // console.log("file------"+util.inspect(files));
            //     for(file in files){
            //         console.log("file>>>>>"+file);
            //     }
| 1 | var extName =''; //后缀名 | 
        }
    })
});
```
 
        