如何在Java Servlet中实现jQuery直接上传到Cloudinary?

时间:2013-04-26 19:37:11

标签: java servlets cloudinary

我试图弄清楚如何使用Java后端从用户的浏览器实现直接文件上传到Cloudinary。这类似于this question about node.js,但对于Java。

Cloudinary关于该主题的博文:

http://cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery

在手动方法中非常稀疏,并没有详细说明确切的HTML / JS最终结果应该是什么样的,所以在Java中使用它很困难。

使这项工作到底需要做些什么?

1 个答案:

答案 0 :(得分:0)

我放弃了等待答案并自己实施了一个。该代码位于this fork of the cloudinary_java project

我还为官方的cloudinary_java项目创建了一个pull requeste

您可以使用以下新功能:

<%@ taglib prefix="cl" uri="http://cloudinary.com/jsp/taglib" %>
...
<cl:upload tags="userProfilePhoto" fieldName="cloudinaryResource" />
<input type="hidden" name="cloudinaryResource" />

根据cloudinary的文档,您应该可以获取要上传的图像。然后,您将需要注册成功上载的处理程序,并找出如何将public_id和格式保存回服务器。

以下是使用cloudinary图像标记创建标记的示例:

<cl:image id="profilePhoto" crop="crop" height="120" width="120"
    extraClasses="profilePhoto" publicId="${cloudinaryPublicId}" format="jpg" />

我们像这样配置Cloudinary:

在我们的属性文件中:

cloudinary.api.key=<api-key-here>
cloudinary.api.secret=<api-secret-here>
cloudinary.cloud-name=<cloud-name-here>

在我们的cloudinary-config.xml spring config中:

<bean id="cloudinaryConfigMap" class="java.util.HashMap">
    <constructor-arg>
        <map key-type="java.lang.String" value-type="java.lang.String">
            <entry key="api_key" value="${cloudinary.api.key}" />
            <entry key="api_secret" value="${cloudinary.api.secret}" />
            <entry key="cloud_name" value="${cloudinary.cloud-name}" />
            <entry key="callback" value="$[app.url.base]/path/to/cloudinary_cors.html" />
        </map>
    </constructor-arg>
</bean>

<bean id="cloudinary" class="com.cloudinary.Cloudinary">
    <constructor-arg index="0" ref="cloudinaryConfigMap" />
</bean>

<bean id="cloudinarySingleton" class="com.cloudinary.SingletonManager" 
    init-method="init" destroy-method="destroy">
    <property name="cloudinary" ref="cloudinary" />
</bean>

这会从我们的配置系统配置Cloudinary,然后将结果存储在SingletonManager中。当Spring上下文关闭时,Cloudinary对象将从单例中清除,因此内存不会泄漏。

我希望这有助于其他人!