使用 jQuery/Java 裁剪和上传图像

Posted

技术标签:

【中文标题】使用 jQuery/Java 裁剪和上传图像【英文标题】:Crop and Upload image using jQuery/Java 【发布时间】:2012-02-28 17:12:46 【问题描述】:

我正在寻找一个允许以下功能的 jQuery 插件:

    选择/浏览图像(来自用户的文件系统) 预览图像,具有裁剪功能 将裁剪后的图像上传到服务器(JAVA Servlet)

对此有什么建议吗?

附: :我发现了许多独立的图像裁剪插件(适用于预定义的图像),但不是那些也允许上传自定义图像的插件(通过 Java servlet)。

【问题讨论】:

【参考方案1】:

here 解释了一种方法,即在实际将图像上传到支持 html5 的浏览器中的服务器之前裁剪图像。提到的解决方案是:JCrop、JQuery、HTML5 的 File 和 Canvas API。

另一种方法(对于非 HTML5 浏览器)是:

    选择/浏览图片 将其上传到服务器(作为临时图像) 预览图像,具有裁剪功能 将 CROP 坐标发送到服务器 在服务器端裁剪并保存图像

【讨论】:

我不久前将 JCrop/JQuery 与 ASP.NET 一起用于一些裁剪/预览/上传功能。这是一次令人惊讶的愉快体验!【参考方案2】:

简而言之,您需要执行以下操作。

使用 HTML“多部分”表单将图像发布到 servlet

<form name="frm" enctype="multipart/form-data" action="/saveimage" method="POST">
  <input type="file" name="filetoupload" />    
  <input type="submit" value="Upload" />
</form>

在 servlet 中将此文件写入“公共”文件夹,以便浏览器可以访问它。如果您正在使用 Servlet,您可以为此目的使用 http://commons.apache.org/fileupload/。如果您使用的是 Web 应用程序框架,该框架可能会为您提供一种上传二进制数据的方式。

返回带有上传图片链接/引用的页面。您可能希望使用某种随机文件名生成算法来避免文件引用冲突。

<img src="/public/random-image.jpg"/>

使用 JCrop http://deepliquid.com/content/Jcrop.html 获取裁剪坐标。 JCrop 文档非常详细地介绍了如何使用它。请注意,您需要初始化 JCrop 以与上面的图像引用绑定。

编写另一个 servlet,您可以 POST/GET 裁剪后的坐标并对其进行任何操作。

【讨论】:

以上是关于使用 jQuery/Java 裁剪和上传图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在angularjs中使用ng-file上传裁剪和上传图像

使用 PHP yii 框架以带有图像预览和裁剪工具的注册表单上传图像?

firebase 图像上传并获取图像然后我必须裁剪 firebase 获取图像

Laravel 多次上传图像预览然后裁剪

在客户端裁剪和上传图像,无需服务器端代码

使用 CrobBox 将裁剪后的图像上传到 PHP