初学者的问题在这里。
我正在尝试将照片从网页直接上传到cloudinary。
这是 Cloudinary 推荐使用的 jQuery 插件。
不幸的是,该插件尚未记录在案,并且没有明确的“example.html”文件。我试图了解插件代码,但到目前为止没有成功。
有人可以根据“example.html”的外观向我指出正确的方向吗?
谢谢。
初学者的问题在这里。
我正在尝试将照片从网页直接上传到cloudinary。
这是 Cloudinary 推荐使用的 jQuery 插件。
不幸的是,该插件尚未记录在案,并且没有明确的“example.html”文件。我试图了解插件代码,但到目前为止没有成功。
有人可以根据“example.html”的外观向我指出正确的方向吗?
谢谢。
下载 Jquery SDK和服务器 sdk。
这是带有 java 服务器端的代码:
这是java中的JSP代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.sql.Timestamp" %>
<%@ page import="com.cloudinary.Cloudinary" %>
<%
String timestamp=(new Long(System.currentTimeMillis() / 1000L)).toString();
Cloudinary cloudinary = new Cloudinary("cloudinary://CLOUDINARY_URL");
Map<String, Object> params = new HashMap<String, Object>();
Map options = Cloudinary.emptyMap();
boolean returnError = Cloudinary.asBoolean(options.get("return_error"), false);
String apiKey = Cloudinary.asString(options.get("api_key"), cloudinary.getStringConfig("api_key"));
if (apiKey == null)
throw new IllegalArgumentException("Must supply api_key");
String apiSecret = Cloudinary.asString(options.get("api_secret"), cloudinary.getStringConfig("api_secret"));
if (apiSecret == null)
throw new IllegalArgumentException("Must supply api_secret");
params.put("callback", "http://www.mcbjam.com/Scripts/vendor/cloudinary/html/cloudinary_cors.html");
params.put("timestamp", timestamp);
String expected_signature = cloudinary.apiSignRequest(params, apiSecret);%>
您可以在 Cloudinary 仪表板上拥有 CLOUDINARY_URL。我使用 cloudinary.apiSignRequest 方法,该方法包含在服务器 cloudinary sdk 中。我签署了回调和时间戳。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script src="../Scripts/vendor/jquery-1.9.1.min.js"></script>
<script src="../Scripts/vendor/cloudinary/jquery.ui.widget.js"></script>
<script src="../Scripts/vendor/cloudinary/jquery.iframe-transport.js"></script>
<script src="../Scripts/vendor/cloudinary/jquery.fileupload.js"></script>
<script src="../Scripts/vendor/cloudinary/jquery.cloudinary.js"></script>
</head>
<body>
<script type="text/javascript">
$.cloudinary.config({"api_key":"YOUR_API_KEY","cloud_name":"YOUR_CLOUD_NAME"});
</script>
<input name="file" type="file" id="uploadinput"
class="cloudinary-fileupload" data-cloudinary-field="image_upload"
data-form-data="" ></input>
<script>
var data = { "timestamp": <%= timestamp %>,
"callback": "http://YOUR_DOMAIN/cloudinary_cors.html",
"signature": "<%= expected_signature %>",
"api_key": "YOUR API KEY" };
$('#uploadinput').attr('data-form-data', JSON.stringify(data));
</script>
</body>
</html>
将 cloudinary_cors.html 放在你的主机上并修改 html 上的路径。设置您的 APIKEY 和云名称。
<%= timestamp %> 和 <%= expected_signature %> 是在 java 上计算的元素。(你可以在 php 上做同样的事情)。
我在我的网站上使用此代码http://paint.mcbjam.com 您在这里有更多详细信息:http: //mcbjam.blogspot.fr/2013/05/integrer-cloudinary-pour-realiser-des.html法语.
请参阅最近发布的博客文章,其中介绍了使用 jQuery 从浏览器直接上传到 Cloudinary:http: //cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery
您不能仅使用纯 html 将图像上传到 Cloudinary。您需要一个服务器来签署您的请求参数。所以,这是你的 example.html 文件:
<html>
<head>
<title></title>
<script src='jquery.min.js' type='text/javascript'></script>
<script src='jquery.ui.widget.js' type='text/javascript'></script>
<script src='jquery.iframe-transport.js' type='text/javascript'></script>
<script src='jquery.fileupload.js' type='text/javascript'></script>
<script src='jquery.cloudinary.js' type='text/javascript'></script>
<script type = "text/javascript">
$.cloudinary.config({ cloud_name: 'sample', api_key: '874837483274837'});
</script>
</head>
<body>
<input name="file" type="file"
class="cloudinary-fileupload" data-cloudinary-field="image_id"
data-form-data="--signedData--" />
</body>
</html>
注意:data-form-data 属性中的 signedData 是由服务器端代码生成的 JSONObject,其中包含请求参数的 sha1Hex 签名。
一个例子如下:
{
"api_key": "874837483274837",
"timestamp": "1234567890",
"public_id": "sample",
"signature": "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3"
}
另外,让我明确一点,您不需要任何其他按钮来上传文件,只需选择文件就会触发 jQuery 事件并将请求参数发送到 Cloudinary。
您可以在此处找到有关在 java 上生成签名的信息。