是否有任何指令或js文件上传任何格式文件,如.ppt,.mp4,,txt,.doc ....意味着任何类型。以及如何使用角度js下载这些文件。即使我得到一些指示但没有用。所以,我在这里质疑,我花了一整天才得到它,但是徒劳无功。任何演示都会有很大帮助。所以可能,帮助我。谢谢你
答案 0 :(得分:2)
使用角度js上传任何类型的文件非常容易。我在这里发帖,因为我花了将近一天的时间来搜索并得到正确的答案。这是proc。
首先在index.html中将这两个文件注入,
<script src="ng-file-upload.min.js"></script>
<script src="ng-file-upload-shim.min.js"></script>
现在在你的script.js中注入&#34; ngFileUpload&#34;作为依赖
现在从您要上传文件的位置写下面的代码,即在您的html文件中
<form ng-controller="MyCtrl as up" name="up.upload_form" class="form-horizontal form-label-left">
<div class="item form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="name">Description <span class="required">*</span>
</label>
<div class="col-md-4 col-sm-6 col-xs-12">
<input
type="file"
ngf-select
ng-model="up.file"
name="file"
ngf-max-size="20MB"
/>
<button type="submit" ng-click="up.submit()">submit</button>
<p>{{up.progress}}</p></div></div>
</form>
在控制器写入中,
ZustShopController.controller('MyCtrl',['Upload','$window',function(Upload,$window){
var vm = this;
vm.submit = function(){ //function to call on form submit
if (vm.upload_form.file.$valid && vm.file) { //check if from is valid
vm.upload(vm.file); //call upload function
}
}
vm.upload = function (file) {
Upload.upload({
url: 'http://serveripaddress:portnumber/upload', //webAPI exposed to upload the file
data:{file:file} //pass file as data, should be user ng-model
}).then(function (resp) { //upload function returns a promise
if(resp.data.error_code === 0){ //validate success
$window.alert('Success ' + resp.config.data.file.name + 'uploaded. Response: ');
} else {
$window.alert('an error occured');
}
}, function (resp) { //catch error
console.log('Error status: ' + resp.status);
$window.alert('Error status: ' + resp.status);
}, function (evt) {
console.log(evt);
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
vm.progress = 'progress: ' + progressPercentage + '% '; // capture upload progress
});
};
}]);
此处服务器IP地址是服务器运行的服务器地址和端口号。
无需客户端的服务/工厂
现在在服务器端包含所有需求,然后添加write,
var storage = multer.diskStorage({ //multers disk storage settings
destination: function (req, file, cb) {
cb(null, './uploads/');
},
filename: function (req, file, cb) {
var datetimestamp = Date.now();
cb(null, file.originalname);
}
});
var upload = multer({ //multer settings
storage: storage
}).single('file');
/** API path that will upload the files */
app.post('/upload', function(req, res) {
upload(req,res,function(err){
if(err){
res.json({error_code:1,err_desc:err});
return;
}
res.json({error_code:0,err_desc:null});
});
});
尽可能简单。
注意:在服务器端创建一个名为uploads的文件夹,其中将存储所有文件。
或者您也可以按照以下链接从我的代码成功完成但有一些更改。 http://code.ciphertrick.com/2015/12/07/file-upload-with-angularjs-and-nodejs/
感谢。如果有帮助,请投票。