我试图使用meanjs实现danialfard的angularjs文件上传。但它不起作用。
它可以和meanjs一起使用吗??
您应该能够使用它,在将angularjs文件上传模块包含到您的项目中时,您似乎错过了一步,因此以下是在MeanJS应用程序中包含此模块或任何外部angular模块的步骤:
1-安装angularjs文件后,通过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文件上传作为依赖项,这是在文件中完成的:public\config.js,在数组的末尾添加"angularFileUpload":
var applicationModuleVendorDependencies = ['ngResource', 'ngCookies', 'ngAnimate', 'ngTouch', 'ngSanitize', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload'];
4-你现在应该可以在你的视图中使用文件上传器,如果没有完成下一步,然后再试一次。
5-如果你想在控制器中使用angularjs文件上传服务,你应该在你的模块注册中注入上传服务($upload),如下所示:
angular.module('myModuleName').controller('MyController', ['$scope', '$stateParams', '$location', 'Authentication', '$upload',
function ($scope, $stateParams, $location, Authentication, $upload) {
// your controller code goes here
});
6-现在你应该是苹果使用$upload服务从angularjs文件上传到你的角度控制器,如下所示:
$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这样的库就可以了。