こんにちは私はangularjsアプリケーションを開発しています。私はファイルアップロードモジュールをやっています。私はファイルを検証しようとしています。 xlsxまたはxlsファイルのみをアップロードしたいと思います。私は以下のようにファイルをアップロードするためのディレクティブとファクトリメソッドを開発しました。Angularjsファイル名の拡張子を取得する方法は?
myapp.directive('fileModel', ['fileUploadExcel', function (fileUploadExcel) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind("change", function (evt) {
fileUploadExcel.pendingFiles[attrs.fileModel] = evt.target.files[0];
});
}
};
}]);
以下はマイコンです。
$scope.upload = function (filename) {
fileUploadExcel.doUpload().success(function (success) {
}).error(function (error) {
});
以下は私の工場コードです。
myapp.factory('fileUploadExcel', ['$http', '$cookieStore', 'cfg', function ($http, $cookieStore, cfg) {
var LoginID = $cookieStore.get("LoginID");
var baseurl = cfg.Baseurl;
var fileuploadurl = baseurl + 'api/Customer/BulkUploadVehicle/';
var service = {
uploadUrl: fileuploadurl,
pendingFiles: {},
doUpload: doUpload
};
return service;
function doUpload() {
var filename;
var files = new FormData();
files.append('LoginID', LoginID);
angular.forEach(this.pendingFiles, function (value, index) {
filename = value.name;
files.append(index, value);
});
var extn = filename.split(".").pop();
if (extn == 'xlsx' || extn == 'xls') {
return $http.post(this.uploadUrl, files, {
transformRequest: angular.identity,
headers: {
'Content-Type': undefined
}
})
}
else
{
return false;
}
}
}]);
私は正常にextnを取得できます。私のファイルの種類がExcelの場合、コードは正常に動作します。私はExcel以外のアップロードするたびにエラーが表示されます。私は返品虚偽を書きました。これはここでは機能しません。私は他の何かを返すべきです。そうでなければ何を書かなければならないのか分かりますか?誰でもここで私を助けることができますか?どんな助けもありがとう。ありがとうございました。
xlsxやxls拡張機能以外のファイルをアップロードしようとするとどうなりますか? if条件をパスしますか? –
ありがとうrahul。私がExcel以外のファイルをアップロードするたびに、エラーfileUploadExcel.doUpload(...)が発生します。成功は関数ではありません –
ahh..got it ..答えを確認しますか? –