0
4

1 回答 1

0

我放弃了等待答案并自己实施了一个。该代码在 cloudinary_java 项目的这个分支中可用。

我还为官方 cloudinary_java 项目创建了一个拉取请求。

您可以像这样使用新功能:

<%@ 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 弹簧配置中:

<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 对象从单例中清除,因此内存不会泄漏。

我希望这对其他人有帮助!

于 2013-05-06T19:00:43.327 回答