Javascript ng使用multer上传文件,未调用成功,并多次调用上传

Javascript ng使用multer上传文件,未调用成功,并多次调用上传,javascript,angularjs,express,multer,ng-file-upload,Javascript,Angularjs,Express,Multer,Ng File Upload,我使用从Angular客户端将图像上载到node/express服务器 正在加载图像,但是没有调用“success”方法,并且图像上载似乎被调用多次,导致图像被重复上载到服务器 这是我的HTML表单: <form accept-charset="UTF-8" ng-submit="uploadPic(picFile)" name="myForm"> <br>Photo: <input type="file" ngf-

我使用从Angular客户端将图像上载到node/express服务器

正在加载图像,但是没有调用“success”方法,并且图像上载似乎被调用多次,导致图像被重复上载到服务器

这是我的HTML表单:

<form accept-charset="UTF-8" ng-submit="uploadPic(picFile)" name="myForm">

            <br>Photo:
            <input type="file" ngf-select ng-model="picFile" ngf-multiple="false" name="file" accept="image/*" ngf-max-size="2MB" required />
            <br>

            <i ng-show="myForm.file.$error.maxSize">File too large {{picFile.size / 1000000|number:1}}MB: max {{picFile.$errorParam}}</i>

            <img ng-show="myForm.file.$valid" ngf-src="!picFile.$error && picFile" class="thumb">

            <br>

            <button class="btn btn-info" type="submit">Submit</button>
            <span class="progress" ng-show="picFile.progress >= 0">
              <div style="width:{{picFile.progress}}%" ng-bind="picFile.progress + '%'" class="ng-binding"></div>
            </span>
            <span ng-show="picFile.result">Upload Successful</span>
        </form>
以下是我的服务器端代码:

var multer = require('multer');
var upload = multer({ dest: './public/images'});

router.post('/uploads', upload.single('file'), function(req,res,next){
  console.log("Server: got file ");
});
我在某个地方读到必须首先包括垫片库,但我尝试过交换加载顺序,但没有乐趣。以下是我的导入行:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<script src="/lib/ng-file-upload/ng-file-upload-shim.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="/lib/ng-file-upload/ng-file-upload.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.13/angular-ui-router.js"></script>

另外,查看Chrome调试工具-上传显示“挂起”状态。图像肯定在服务器上,进度条(在html中)显示100%。然而,大约一分钟后,文件夹中会出现另一个图像副本(这种行为似乎是循环的),并且从未调用ng file upload“success”事件


感谢您的帮助。

您的服务器似乎没有真正响应,网络或浏览器再次尝试相同的请求,这就是您看到多个上载的原因。因此,请确保您的服务器在上传文件后关闭连接并响应请求。非常感谢Danial。是的,就是这样。
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<script src="/lib/ng-file-upload/ng-file-upload-shim.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="/lib/ng-file-upload/ng-file-upload.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.13/angular-ui-router.js"></script>