javascript - AngularJs http post 无法到达本地文件夹

标签 javascript angularjs http post

HTML

 <input type="file" file-model="image" multiple/>
<button type="submit" class="btn-sm" ng-click="uploadFile()">Upload</button>

在 html 中,我有一个这样的输入。

JS

app.directive('fileModel', ['$parse', function ($parse) {
   return {
       restrict: 'A',
       link: function(scope, element, attributes) {
           var model = $parse(attributes.fileModel);
           var modelSetter = model.assign;
           element.bind('change', function(){
               scope.$apply(function(){
                   modelSetter(scope, element[0].files[0]);
               });
           });
       }
   };}]);
app.service('fileUpload', ['$http', function ($http) {
this.uploadFileToUrl = function(file, uploadUrl){
    var fd = new FormData();
    fd.append('file', file);
    $http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: {'Content-Type': undefined}
    });
};}]);
app.controller('storeController',['$http','$scope','fileUpload',function($http,$scope,fileUpload) {

    $scope.uploadFile = function(){
        var file = $scope.image;


        console.log('file is ' );
        console.dir(file);

        var uploadUrl = "././img/";
        fileUpload.uploadFileToUrl(file, uploadUrl);
    };

我正在尝试使用此代码将图像上传到服务器/本地文件夹。但它在控制台上响应 HTTP 404 错误。

它正确地将文件记录到控制台,但是当我尝试将其发布到文件夹时,不起作用。

根目录下有一个名为 img 的文件夹。网址正确,写入网址没有任何语法错误,但它的响应为

POST http://localhost:63342/Project/img/ 404 (Not Found)

控制台出错。

我该怎么做才能让它发挥作用?

最佳答案

您无法从 JavaScript 访问您的文件夹结构,也无法通过 URL 访问它,当然是出于安全原因。

否则任何人都可以编写一点 JavaScript 并对您的文件做任何他们想做的事。

另外,URL 是虚拟路径,而不是物理路径。您可以将文件保存到物理位置,但不能对虚拟位置执行同样的操作。

您没有说明您的应用程序是如何构造的,假设您有一个像 MVC 这样的后端,您可以在那边执行此操作。只需创建一个从 JavaScript 访问的端点,然后让后端代码处理上传的数据。

关于javascript - AngularJs http post 无法到达本地文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41771762/

相关文章:

javascript - Angular ng-repeat - 跨多个循环的唯一 $index

javascript - 如何从使用动词的解析器刷新数据?

java - org.apache.http.impl.client.CloseableHttpClient 代理认证

http - 缓存控制 : 'private' makes 'no-cache="set-cookie"' unnecessary?

javascript - 无法弄清楚使用 Firebase 登录 Github

javascript - 为什么即使参数作为命名参数传递,参数的顺序仍然保持不变?在 JavaScript 中

javascript - Mobx 状态树能否导致 "race conditions"/仅适用于 setTimeout?

node.js - 像 Angular 部分一样渲染 Jade

javascript - HTTP 请求回调未执行 - 为什么?

javascript - Bootstrap popover 只出现一次