gpt4 book ai didi

angularjs - 使用 Web API 在 Ionic 应用程序中上传文件

转载 作者:行者123 更新时间:2023-12-03 23:35:17 25 4
gpt4 key购买 nike

我的问题如下。

我已经给了 WEB API,我必须在其中添加板图片。

我必须做什么?

  • 用户应该能够从电话中选择图像
  • 用户可以添加板名称
  • 当用户点击提交时,输入的板名称和板图像应使用 PUT 方法使用 Web API 发布。以下是WEB API详情

  • WEB API详情

    标题
  • 网址:https://example.com
  • 内容类型: |内容类型 |
  • 方法:PUT

  • 数据
  • board_id:321
  • board_title: |标题 |
  • board_background: |文件 |

  • 我用过 cordovaImagePicker 插件来选择图像,然后我坚持将其上传到服务器。

    我可以使用cordova文件传输插件,但我认为在这种情况下这对我没有帮助,因为没有指定的位置来存储图像。所有的文件管理都由WEB API完成,我们只需要将文件与数据一起发布即可。

    最佳答案

    在尝试了很多解决方案后,我得出了以下答案。

    Board.html

        <ion-view>
    <ion-nav-bar class="bar">
    <ion-nav-title>
    <h1 class="title">
    Create Board
    </h1>
    </ion-nav-title>
    </ion-nav-bar>
    <form name="boardForm" ng-submit="addBoard(data)">
    <ion-content padding="false" scroll="true" has-bouncing="false">
    <div id="form">
    <div style="text-align: center; padding-top: 2%; padding-bottom: 2%;">
    <div id="image-preview">
    <label for="image-upload" id="image-label"><img src="{{ImagePrefix}}/task_plus.png" alt=""/></label>
    <input type="file" name="board_background" id="image-upload" file-model="data.board_background">
    </div>
    <p>Add Cover</p>
    </div>
    <ion-list>
    <ion-item style="background-color: #F8F8F8;">
    <label class="control-label" for="board_name">BOARD NAME</label>
    </ion-item>
    <ion-item ng-class="{true:'error'}[submitted && boardForm.board_title.$invalid]">
    <input type="text" id="board_name" ng-model="data.board_title"
    placeholder="Add a Name" name="board_title" required>

    <p ng-show="submitted && boardForm.board_title.$error.required">
    Please enter a board name
    </p>
    </ion-item>
    </ion-list>
    </div>
    </ion-content>
    <ion-footer-bar>
    <button class="button button-block control-button bottomOfPage"
    ng-click="submitted = true">
    CREATE
    </button>
    </ion-footer-bar>
    </form>
    </ion-view>

    指令
        .directive('fileModel', ['$parse', function ($parse) {
    return {
    restrict: 'A',
    link: function (scope, element, attrs) {
    var model = $parse(attrs.fileModel);
    var modelSetter = model.assign;

    element.bind('change', function () {
    scope.$apply(function () {
    modelSetter(scope, element[0].files[0]);
    });
    });
    }
    };
    }])

    Controller
        .controller('ManageBoardCtrl', function ($scope, $http, $ionicPopup, $state, BoardService) {
    $scope.submitted = false;
    $scope.data = {};
    $scope.addBoard = function(formData) {
    BoardService.CreateBoard(formData).then(function(response) {
    if (response === "success") {
    $ionicPopup.alert({
    title: "Success",
    template: "Board created successfully"
    });
    }
    }, function (response) {
    $ionicPopup.alert({
    title: "Failed",
    template: "Somethings wrong, Can not create boards at now."
    });
    });
    }
    })

    服务
        .service('BoardService', function ($q, $http) {
    var getUrl = API_URL + "boards";

    var createBoard = function (fData) {
    var formData = new FormData();
    formData.append("board_title", fData.board_title);
    formData.append("board_background", fData.board_background);

    return $q(function (resolve, reject) {
    $http({
    transformRequest: angular.identity,
    method: 'POST',
    url: getUrl,
    headers: { 'Content-Type': undefined },
    data: formData
    }).success(function (response) {
    if (response.success === true) {
    resolve('success');
    } else {
    reject('fail');
    }
    }).error(function () {
    reject('requesterror');
    });
    });
    };

    return {
    CreateBoard: createBoard
    };
    })

    为 android/iPhone 文件选择部署应用程序后,将根据操作系统处理浏览图像。

    关于angularjs - 使用 Web API 在 Ionic 应用程序中上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33800693/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com