我想创建一个文件上传器,我可以将图片上传到我的 UI,裁剪它,然后将其发送到我的服务器。我一直在使用 ngFileUpload 上传文件,效果很好。我按照指示将 ngImgCrop 添加到我的项目中,并将http://jsfiddle.net/danialfarid/xxo3sk41/590/中的 html 和 css 导入到我的项目中,以了解如何使用它。乍一看,一切看起来都不错,但是当我从硬盘驱动器中选择一张图片时,它不会出现在裁剪区域中。有什么东西是隐藏的还是有其他问题?这是jsfiddle html和css:
<style>
.cropArea {
background: #E4E4E4;
overflow: hidden;
width:500px;
height:350px;
}
</style>
<div>Crop Image and Upload</div>
<button ngf-select ng-model="picFile" accept="image/*">
Select Picture</button>
<div ngf-drop ng-model="picFile" ngf-pattern="image/*"
class="cropArea">
<img-crop image="picFile | ngfDataUrl"
result-image="croppedDataUrl" ng-init="croppedDataUrl=''">
</img-crop>
</div>
<div>
<img ng-src="{{croppedDataUrl}}" />
</div>
<button ng-click="upload(croppedDataUrl, picFile.name)">Submit</button>
我有仅用于上传的代码。图片按预期显示。我想知道为什么它是为一个而不是另一个。此代码适用于 ng-file-upload:
<div class="photo-upload-text">Upload your image</div>
<a class="upload-button" ngf-select ng-model="logo" href="#">Choose File </a>
<img ngf-src="logo" ngf-default-src="'/thumb.jpg'" ngf-accept="'image/*'">
最后,我举了两个例子。这个允许我裁剪图片,但它不会生成没有前缀的 base64 文件,可以轻松上传。第二个虽然相似,但不会将图片用于裁剪。
允许裁剪但不生成可接受的 base64 文件
<div>Select an image file: <input type="file" id="fileInput" /></div>
<div class="cropArea">
<img-crop image="myImage" result-image="myCroppedImage"></img-crop>
</div>
<div>Cropped Image:</div>
<div>
<img ng-src="{{myCroppedImage}}" />
</div>
我认为这提供了一个很好的 base64 文件,但我无法裁剪它以找出
<div>Crop Image and Upload</div>
<button ngf-select ng-model="picFile" accept="image/*">Select Picture</button>
<div ngf-drop ng-model="picFile" ngf-pattern="image/*"class="cropArea">
<img-crop image="picFile | ngfDataUrl" result-image="croppedDataUrl" ng-init="croppedDataUrl=''"></img-crop>
</div>
<div>Cropped Image:</div>
<div>
<img ng-src="{{croppedDataUrl}}" />
</div>