我们如何用angularJS上传文件

我们如何用angularJS上传文件,angularjs,jquery-file-upload,Angularjs,Jquery File Upload,在angularJS中有没有直接上传文件的方法。 我对angularJS完全陌生。尝试在谷歌上搜索,但找不到关于此的任何基本示例。我们需要安装任何库/.js文件吗 <!DOCTYPE html> <html ng-app xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <

在angularJS中有没有直接上传文件的方法。 我对angularJS完全陌生。尝试在谷歌上搜索,但找不到关于此的任何基本示例。我们需要安装任何库/.js文件吗

 <!DOCTYPE html>
    <html ng-app xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    </head>
<body>
<h5>Upload</h5>
    <!--<div class="span12">-->            
    <div class="span4">
        <div class="fileupload fileupload-new" data-provides="fileupload">
            <div class="input-append">
                <div class="uneditable-input span3">
                    <i class="icon-file fileupload-exists"></i> 
                    <span class="fileupload-preview" ng-model="userType"></span>                                          
                </div>                                
                <span class="btn btn-file">
                    <span class="fileupload-new">Select file</span>
                    <span class="fileupload-exists">Change</span>
                    <!--<input type="file" name="file" />-->
                    <input type="file" ng-model="upFile" onchange="angular.element(this).scope().setFileEventListener(this)" />
                </span>
                <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
            </div>
        </div>                   
    </div>
    <div class="span2"  >
        <button type="submit"  value="Send" id="btnStartUpload" class="btn start" ng-click="uploadFile()" ng-disabled="!upload_button_state">
            <i class="icon-upload"></i>
            <span>Upload File</span>
        </button>                       
    </div>
    <script>
        $scope.setFileEventListener = function (element) {
            $scope.uploadedFile = element.files[0];

            if ($scope.uploadedFile) {
                $scope.$apply(function () {
                    $scope.upload_button_state = true;
                });
            }
        }

        $scope.uploadFile = function () {
            uploadFile();
        };


        function uploadFile() {
            if (!$scope.uploadedFile) {
                return;
            }

            ajax_post.uploadFile_init($scope.uploadedFile)
                .then(function (result) {
                    if (result.status == 200) {
                        $scope.storeDB_button_state = true;
                        clientInfo.imagePath = "/uploadsfolder/" + $scope.uploadedFile.name;

                    }
                }, function (error) {
                    alert(error.message);
                });
        }
    </script>
</body>
</html>

上传
选择文件
改变
上载文件
$scope.setFileEventListener=函数(元素){
$scope.uploadedFile=element.files[0];
if($scope.uploadedFile){
$scope.$apply(函数(){
$scope.upload_button_state=true;
});
}
}
$scope.uploadFile=函数(){
上传文件();
};
函数uploadFile(){
if(!$scope.uploadedFile){
返回;
}
ajax\u post.uploadFile\u init($scope.uploadedFile)
.然后(函数(结果){
如果(result.status==200){
$scope.storeDB_button_state=true;
clientInfo.imagePath=“/uploadsfolder/”+$scope.uploadedFile.name;
}
},函数(错误){
警报(错误消息);
});
}

下面是一段代码片段,它可以使用

引导文件上载(引导v2.3.1-j6)

HTML

<h5>Upload</h5>
    <!--<div class="span12">-->            
    <div class="span4">
        <div class="fileupload fileupload-new" data-provides="fileupload">
            <div class="input-append">
                <div class="uneditable-input span3">
                    <i class="icon-file fileupload-exists"></i> 
                    <span class="fileupload-preview" ng-model="userType"></span>                                          
                </div>                                
                <span class="btn btn-file">
                    <span class="fileupload-new">Select file</span>
                    <span class="fileupload-exists">Change</span>
                    <!--<input type="file" name="file" />-->
                    <input type="file" ng-model="upFile" onchange="angular.element(this).scope().setFileEventListener(this)" />
                </span>
                <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
            </div>
        </div>                   
    </div>
    <div class="span2"  >
        <button type="submit"  value="Send" id="btnStartUpload" class="btn start" ng-click="uploadFile()" ng-disabled="!upload_button_state">
            <i class="icon-upload"></i>
            <span>Upload File</span>
        </button>                       
    </div>
这里我们使用服务
ajax\u post
并调用方法:
uploadFile\u init

工厂

app.factory('ajax_post', ['$http', function(_http) {

        return {           
            uploadFile_init: function(uploadedFile) {
                var fd = new FormData();
                fd.append("uploadedFile", uploadedFile);
                var upload_promise = _http.post('somePath',
                    fd, {
                        headers: {
                            'Content-Type': undefined
                        },
                        transformRequest: angular.identity
                    });

                return upload_promise;
            }
        }
    }
]);

希望对您有所帮助

这里是一段代码,可以使用

引导文件上载(引导v2.3.1-j6)

HTML

<h5>Upload</h5>
    <!--<div class="span12">-->            
    <div class="span4">
        <div class="fileupload fileupload-new" data-provides="fileupload">
            <div class="input-append">
                <div class="uneditable-input span3">
                    <i class="icon-file fileupload-exists"></i> 
                    <span class="fileupload-preview" ng-model="userType"></span>                                          
                </div>                                
                <span class="btn btn-file">
                    <span class="fileupload-new">Select file</span>
                    <span class="fileupload-exists">Change</span>
                    <!--<input type="file" name="file" />-->
                    <input type="file" ng-model="upFile" onchange="angular.element(this).scope().setFileEventListener(this)" />
                </span>
                <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
            </div>
        </div>                   
    </div>
    <div class="span2"  >
        <button type="submit"  value="Send" id="btnStartUpload" class="btn start" ng-click="uploadFile()" ng-disabled="!upload_button_state">
            <i class="icon-upload"></i>
            <span>Upload File</span>
        </button>                       
    </div>
这里我们使用服务
ajax\u post
并调用方法:
uploadFile\u init

工厂

app.factory('ajax_post', ['$http', function(_http) {

        return {           
            uploadFile_init: function(uploadedFile) {
                var fd = new FormData();
                fd.append("uploadedFile", uploadedFile);
                var upload_promise = _http.post('somePath',
                    fd, {
                        headers: {
                            'Content-Type': undefined
                        },
                        transformRequest: angular.identity
                    });

                return upload_promise;
            }
        }
    }
]);

希望对您有所帮助

这里是一段代码,可以使用

引导文件上载(引导v2.3.1-j6)

HTML

<h5>Upload</h5>
    <!--<div class="span12">-->            
    <div class="span4">
        <div class="fileupload fileupload-new" data-provides="fileupload">
            <div class="input-append">
                <div class="uneditable-input span3">
                    <i class="icon-file fileupload-exists"></i> 
                    <span class="fileupload-preview" ng-model="userType"></span>                                          
                </div>                                
                <span class="btn btn-file">
                    <span class="fileupload-new">Select file</span>
                    <span class="fileupload-exists">Change</span>
                    <!--<input type="file" name="file" />-->
                    <input type="file" ng-model="upFile" onchange="angular.element(this).scope().setFileEventListener(this)" />
                </span>
                <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
            </div>
        </div>                   
    </div>
    <div class="span2"  >
        <button type="submit"  value="Send" id="btnStartUpload" class="btn start" ng-click="uploadFile()" ng-disabled="!upload_button_state">
            <i class="icon-upload"></i>
            <span>Upload File</span>
        </button>                       
    </div>
这里我们使用服务
ajax\u post
并调用方法:
uploadFile\u init

工厂

app.factory('ajax_post', ['$http', function(_http) {

        return {           
            uploadFile_init: function(uploadedFile) {
                var fd = new FormData();
                fd.append("uploadedFile", uploadedFile);
                var upload_promise = _http.post('somePath',
                    fd, {
                        headers: {
                            'Content-Type': undefined
                        },
                        transformRequest: angular.identity
                    });

                return upload_promise;
            }
        }
    }
]);

希望对您有所帮助

这里是一段代码,可以使用

引导文件上载(引导v2.3.1-j6)

HTML

<h5>Upload</h5>
    <!--<div class="span12">-->            
    <div class="span4">
        <div class="fileupload fileupload-new" data-provides="fileupload">
            <div class="input-append">
                <div class="uneditable-input span3">
                    <i class="icon-file fileupload-exists"></i> 
                    <span class="fileupload-preview" ng-model="userType"></span>                                          
                </div>                                
                <span class="btn btn-file">
                    <span class="fileupload-new">Select file</span>
                    <span class="fileupload-exists">Change</span>
                    <!--<input type="file" name="file" />-->
                    <input type="file" ng-model="upFile" onchange="angular.element(this).scope().setFileEventListener(this)" />
                </span>
                <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
            </div>
        </div>                   
    </div>
    <div class="span2"  >
        <button type="submit"  value="Send" id="btnStartUpload" class="btn start" ng-click="uploadFile()" ng-disabled="!upload_button_state">
            <i class="icon-upload"></i>
            <span>Upload File</span>
        </button>                       
    </div>
这里我们使用服务
ajax\u post
并调用方法:
uploadFile\u init

工厂

app.factory('ajax_post', ['$http', function(_http) {

        return {           
            uploadFile_init: function(uploadedFile) {
                var fd = new FormData();
                fd.append("uploadedFile", uploadedFile);
                var upload_promise = _http.post('somePath',
                    fd, {
                        headers: {
                            'Content-Type': undefined
                        },
                        transformRequest: angular.identity
                    });

                return upload_promise;
            }
        }
    }
]);

希望这会有所帮助

非常感谢您的帮助…我几乎完成了…但无法理解应用程序工厂的事情(我是新手)。我刚刚在Visualstudio 2012中创建了一个HTML页面,并在该页面中添加了您的HTML和js代码。我可能做错了。请在此过程中帮助我。当我单击“上载文件”按钮时,什么都没有发生。我是否需要添加任何jquery/js引用。我将附加我的HTML文件/项目文件欢迎来到Angularjs world!我无法描述angualr是如何工作的,这超出了问题的范围,但你可以看看这个演示工厂是如何工作的:将我的代码添加到问题中。请检查它。在开始时将ng app添加到html标记。阅读angular js所需的部分。非常感谢你的帮助…我几乎完成了…但无法理解应用工厂的事情(我是新来的)。我刚刚在Visualstudio 2012中创建了一个HTML页面,并在该页面中添加了您的HTML和js代码。我可能做错了。请在此过程中帮助我。当我单击“上载文件”按钮时,什么都没有发生。我是否需要添加任何jquery/js引用。我将附加我的HTML文件/项目文件欢迎来到Angularjs world!我无法描述angualr的工作方式,它的out来自问题范围,但你可以看看这个演示工厂是如何工作的:将我的代码添加到问题中。请检查它。在开始时将ng app添加到html标记。在angular js需要的地方阅读一些内容。非常感谢你的帮助…我几乎完成了…但无法理解应用工厂的事情(我是新手)。我刚刚在Visualstudio 2012中创建了一个HTML页面,并在该页面中添加了您的HTML和js代码。我可能做错了。请在此过程中帮助我。当我单击“上载文件”按钮时,什么都没有发生。我是否需要添加任何jquery/js引用。我将附加我的HTML文件/项目文件欢迎来到Angularjs world!我无法描述angualr的工作方式,它的out来自问题范围,但你可以看看这个演示工厂是如何工作的:将我的代码添加到问题中。请检查它。在开始时将ng app添加到html标记。在angular js需要的地方阅读一些内容。非常感谢你的帮助…我几乎完成了…但无法理解应用工厂的事情(我是新手)。我刚刚在Visualstudio 2012中创建了一个HTML页面,并在该页面中添加了您的HTML和js代码。我可能做错了。请在此过程中帮助我。当我单击“上载文件”按钮时,什么都没有发生。我是否需要添加任何jquery/js引用。我将附加我的HTML文件/项目文件欢迎来到Angularjs world!我无法描述angualr的工作方式,它的out来自问题范围,但您可以在此演示中了解factory的工作原理:将我的代码添加到问题中。请检查。在开始处将ng app添加到html标记。阅读angular js所需的部分。