Javascript ng使用multer上传文件,未调用成功,并多次调用上传
我使用从Angular客户端将图像上载到node/express服务器 正在加载图像,但是没有调用“success”方法,并且图像上载似乎被调用多次,导致图像被重复上载到服务器 这是我的HTML表单: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-
<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>