我正在尝试上传文件。我有一个工作示例,它是这样的:
<div class="btn btn-default btn-fileinput">
<span class="glyphicon glyphicon-upload"></span> <input
type="file" id="fileUploadInput" name="files" multiple
accept="text/xml" data-ng-file-select="uploadFiles($files)" style="width: 40px;">
</div>
我修改了一下并提出了这个:
<label class="btn btn-default btn-file">
Upload
<input
type="file"
style="display: none;"
name="files"
multiple
data-ng-file-select="uploadModel($files)"
>
</label>
<span data-ng-file-select="uploadModel($files)" class="btn btn-primary btn-lg" role="button">Test</span>
但是,uploadModel()
函数未被调用:
$scope.uploadModel = function($files) {
alert('Uploading ' + $files);
}
如何才能上传文件?
依赖关系:
<!-- Dependencies -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-file-upload/dist/angular-file-upload.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
应用模式:
var emaApp = angular.module('emaApp', ['ui.bootstrap', 'angularFileUpload']);
答案 0 :(得分:0)
如果是以下module,那么您应该将var ms = new System.IO.MemoryStream();
var sw = new System.IO.StreamWriter(ms);
var csvOut = new CsvWriter(sw, new Configuration.CsvConfiguration() { Delimiter = ";", IgnoreReferences = true });
csvOut.WriteRecords(someCollection);
// IMPORTANT LINE
sw.Flush();
ms.Position = 0;
return File(ms, "text/csv", "resultFile.csv");
而不是nv-file-select
与上传器对象结合使用。 data-ng-file-select
不会采用任何类型的函数/回调,而是使用附加到上传器对象的各种钩子,例如nv-file-select
,这将允许您在select /中的不同点执行操作上传过程。查看他们的API documentation似乎没有任何onAfterAddingFile
指令,除非您创建了自定义指令。
否则,您可以创建一个自定义指令来监视对this等文件输入类型字段的更改。
<强> HTML 强>
data-ng-file-select
<强> JS 强>
<label class="btn btn-default btn-file">
Upload
<input
type="file"
style="display: none;"
name="files"
multiple
nv-file-select
uploader="uploader" />
</label>