So senden Sie formData mit nervgh ' s Eckige-Datei-Upload

Ich bin mit nervgh ' s Eckige-Datei-Upload
https://github.com/nervgh/angular-file-upload

Es funktioniert wie ein Charme, wenn ich die Festplatte code preOpKey. Was würde ich gerne tun, ist senden Sie die preOpKey zusammen mit der Datei, so dass ich speichern Sie die Datei auf den entsprechenden Datensatz in der Datenbank.

Winkel-Datei-upload hat eine fileData in der API, die ich Auffüllen in $scope.OnPreinspectionSubmit() aber aus irgendeinem Grund kann ich nicht finden, dass der Wert einmal SaveFile() in meiner MVC-controller aufgerufen wird.

Muss ich nur wissen, wie man einen Wert übergeben, zusammen mit meiner Datei, und greifen Sie dann, es in meiner MVC-controller. Ich denke, es wäre bequemer, schicken Sie es in die fileData aber das ist auch nicht erforderlich, um meine Frage zu beantworten.

Hier ist mein Winkel-controller:

var OperatorPreinspectionControllers = angular.module('OperatorPreinspectionControllers', ['angularFileUpload']);

OperatorPreinspectionControllers.controller('OperatorPreinspectionCtrl', ['$scope', '$http', 'FileUploader',
    function ($scope, $http, FileUploader) {

        $scope.uploader = new FileUploader({
            url: pageBaseUrl + 'image/SaveFile'
        });

        $scope.uploader.filters.push({
            name: 'imageFilter',
            fn: function (item /*{File|FileLikeObject}*/, options) {
                var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
                return '|jpg|png|jpeg|bmp|gif|pdf|'.indexOf(type) !== -1;
            }
        });

        //Send the form data to the database
        $scope.OnPreinspectionSubmit = function () {
            if (confirm("Are you sure you want to save this information?")) {
                $http.post(pageBaseUrl + 'api/PreInspectionForm', $scope.formInformation).success(function (returnData) {
                    $scope.uploader.formData.push({ preOpKey: returnData });
                    $scope.uploader.uploadAll(); //Upload file
                });
            } else { }
        }
    }
]);

Hier ist mein MVC-Controller:

public void SaveFile()
    {
        HttpFileCollectionBase files = Request.Files;
        HttpPostedFileBase uploadedFile = files[0];

        var preOpKey = 123; //???????

        //Turn the file into bytes
        byte[] data;
        using(Stream inputStream = uploadedFile.InputStream)
        {
            MemoryStream memoryStream = inputStream as MemoryStream;
            if(memoryStream == null)
            {
                memoryStream = new MemoryStream();
                inputStream.CopyTo(memoryStream);
            }
            data = memoryStream.ToArray();
        }

        PreOpManager.SaveImage(preOpKey, data, uploadedFile.FileName, uploadedFile.ContentType);
    }

Danke,

Aaron

Ich denke, man kann nur senden Sie die Schlüssel über die longhand post-Daten:$http({ url: 'request-url', method: "POST", data: { 'message' : message } }) dann einfach abholen auf dem json-post-Daten und senden es an die Datenbank.
Es muss ein bug in nervgh ' s Eckige-Datei-Upload. Ich landete herausziehen und mit danialfarid ' s Eckige-Datei Hochladen, die hat einen "formData" nur dieser arbeitet. 🙂
Wow, schade. Gut, froh, Sie haben es alle sorta.
mich auch mit dem nervgh ' s Eckige-Datei-Upload und vor Schwierigkeiten bei der Weitergabe der Datei an .net mvc wep-api-controller

InformationsquelleAutor Aaron Salazar | 2014-10-13

Schreibe einen Kommentar