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
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den one-Lösung, die bisher einwandfrei funktionierte für mich wurde:
Als pro https://github.com/nervgh/angular-file-upload/issues/97#issuecomment-39248062
InformationsquelleAutor ScionOfBytes