【发布时间】:2013-06-17 11:55:18
【问题描述】:
我正在尝试使用 ng-upload 在 AngularJS 中上传文件,但我遇到了问题。我的 html 看起来像这样:
<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>
而我的 js 控制器是这样的:
ClabborApp.controller("PostCreateCtrl", ['$scope', 'PostModel',
function($scope, PostModel) {
$scope.uploadPostImage = function(contents, completed) {
console.log(completed);
alert(contents);
}
}]);
我面临的问题是当裁剪图像被点击并执行uploadPostImage时,它会上传整个表单。不是想要的行为,但我可以让它工作。最大的问题是在 js 中,函数 uploadPostImage 'contents' 参数始终未定义,即使 'completed' 参数返回为 true。
我们的目标是只上传一张图片进行裁剪。在这个过程中我做错了什么?
【问题讨论】:
-
访问这里通过 Angular 获取简单的图片上传教程。它真的帮助了我tutorialspoint.com/angularjs/angularjs_upload_file.htm
-
注意这个问题与ng-upload 库有关。不是ng-file-upload 库。
标签: javascript angularjs angularjs-http angularjs-fileupload