尝试使用 meanjs 实施 danialfarid angularjs-file-upload。但它不是工作。
是否可以将它与meanjs ??
一起使用答案 0 :(得分:8)
您应该可以使用它,看起来您错过了将angularjs-file-upload模块包含到项目中的步骤,所以这里是在MeanJS应用程序中包含此模块或任何外部角度模块的步骤:
1-安装angularjs-file-upload文件后通过bower上传命令:
bower install ng-file-upload --save
2-你应该在应用程序布局页面中添加angularjs-file-upload.js文件的引用,这是在文件中完成的: config \ env \ all.js ,你应该有像这样的行:
assets: {
lib: {
css: [
'public/lib/bootstrap/dist/css/bootstrap.css',
'public/lib/bootstrap/dist/css/bootstrap-theme.css'
],
js: [
'public/lib/ng-file-upload/angular-file-upload-shim.min.js',
'public/lib/angular/angular.js',
'public/lib/ng-file-upload/angular-file-upload.min.js',
3-然后你应该在angular应用程序中包含angularjs-file-upload作为依赖项,这在文件中完成: public \ config.js ,在末尾添加'angularFileUpload'这一行中的数组:
var applicationModuleVendorDependencies = ['ngResource', 'ngCookies', 'ngAnimate', 'ngTouch', 'ngSanitize', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload'];
4-您现在应该能够在视图中使用文件上传器,如果还没有完成,则下一步再试一次。
5-如果你想在你的控制器中使用angularjs-file-upload服务,你应该在模块注册中注入上传服务( $ upload ),如下所示:
angular.module('myModuleName').controller('MyController', ['$scope', '$stateParams', '$location', 'Authentication', '$upload',
function ($scope, $stateParams, $location, Authentication, $upload) {
// your controller code goes here
});
6-现在你应该是苹果在角度控制器中使用angularjs-file-upload的$ upload服务,如下所示:
$upload.upload({
url: '/serverRouteUrl', //upload.php script, node.js route, or servlet url
method: 'POST', //Post or Put
headers: {'Content-Type': 'multipart/form-data'},
//withCredentials: true,
data: JsonObject, //from data to send along with the file
file: blob, // or list of files ($files) for html5 only
//fileName: 'photo' // to modify the name of the file(s)
}).success(function (response, status) {
//success
}
).error(function (err) {
//error
}
);
这将完全来自客户端,而不是您必须配置服务器端应用程序或路由以便能够处理带有文件上载的请求,使用像Multer这样的库就可以了。