Ich versuche eine Datei in AngularJS mit ng-upload hochzuladen, aber ich habe Probleme. Mein HTML sieht wie folgt aus:AngularJS Hochladen eines Bildes mit ng-upload
<div class="create-article" ng-controller="PostCreateCtrl">
<form ng-upload method="post" enctype="multipart/form-data" action="/write" >
<fieldset>
<label>Category</label>
<select name="category_id" class="">
<option value="0">Select A Category</option>
<?php foreach($categories as $category): ?>
<option value="<?= $category -> category_id; ?>"><?= $category -> category_name; ?></option>
<?php endforeach; ?>
</select>
<label>Title</label>
<input type="text" class="title span5" name="post_title" placeholder="A catchy title here..." value="<?= $post -> post_title; ?>" />
<label>Attach Image</label>
<input type="file" name="post_image" />
<a href='javascript:void(0)' class="upload-submit: uploadPostImage(contents, completed)" >Crop Image</a>
<label>Body</label>
<div id="container">
<textarea id="mytextarea" wrap="off" name="post_content" class="span7" placeholder="Content..."><?= $post -> post_content; ?></textarea>
</div>
<div style='clear:both;'></div>
<label>Preview</label>
<div id='textarea-preview'></div>
</fieldset>
<div class="span7" style="margin: 0;">
<input type="submit" class="btn btn-success" value="Create Post" />
<input type="submit" class="btn btn-warning pull-right draft" value="Save as Draft" />
</div>
</form>
</div>
Und mein js Controller sieht wie folgt aus:
ClabborApp.controller("PostCreateCtrl", ['$scope', 'PostModel',
function($scope, PostModel) {
$scope.uploadPostImage = function(contents, completed) {
console.log(completed);
alert(contents);
}
}]);
Das Problem, das ich bin vor, wenn die Ernte Bild getroffen wird und es führt uploadPostImage, es lädt die gesamte Form . Nicht erwünschtes Verhalten, aber ich kann es zum Laufen bringen. Das große Problem ist in der js die Funktion uploadPostImage 'contents' Parameter ist immer undefiniert, auch wenn der Parameter 'completed' als wahr zurückkommt.
Ziel ist es, nur ein Bild zum Zuschneiden hochzuladen. Was mache ich falsch in diesem Prozess?
Hier finden Sie ein einfaches Bildupload-Tutorial durch eckig. Es hat mir wirklich geholfen https://www.tutorialspoint.com/angularjs/angularjs_upload_file.htm –