Skip to content

Commit 662885b

Browse files
Merge pull request cloudinary#7 from AssuredLabor/extractUploadParams
Extracted upload tagParams and upload url functionality into their funct...
2 parents c50158a + 7b0f8c5 commit 662885b

File tree

1 file changed

+36
-23
lines changed

1 file changed

+36
-23
lines changed

cloudinary-core/src/main/java/com/cloudinary/Uploader.java

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -273,35 +273,48 @@ public Map callApi(String action, Map<String, Object> params, Map options, Objec
273273
return result;
274274
}
275275

276+
public String prepareUploadTagParams(Map options) {
277+
if (options == null) options = new HashMap();
278+
if (options.get("resource_type") == null) {
279+
options = new HashMap(options);
280+
options.put("resource_type", "auto");
281+
}
282+
283+
String callback = Cloudinary.asString(options.get("callback"), this.cloudinary.getStringConfig("callback"));
284+
if (callback == null) {
285+
throw new IllegalArgumentException("Must supply callback");
286+
}
287+
options.put("callback", callback);
288+
289+
Map<String, Object> params = this.buildUploadParams(options);
290+
signRequestParams(params, options);
291+
292+
// Remove blank parameters
293+
for (Iterator<Object> iterator = params.values().iterator(); iterator.hasNext(); ) {
294+
String value = (String) iterator.next();
295+
if (StringUtils.isBlank(value)) {
296+
iterator.remove();
297+
}
298+
}
299+
300+
return JSONObject.toJSONString(params);
301+
}
302+
303+
public String getUploadUrl(Map options) {
304+
if (options == null) options = new HashMap();
305+
return this.cloudinary.cloudinaryApiUrl("upload", options);
306+
}
307+
276308
public String imageUploadTag(String field, Map options, Map<String, Object> htmlOptions) {
277309
if (htmlOptions == null) htmlOptions = Cloudinary.emptyMap();
278-
if (options == null) options = new HashMap();
279-
if (options.get("resource_type") == null) {
280-
options = new HashMap(options);
281-
options.put("resource_type", "auto");
282-
}
283-
String cloudinaryUploadUrl = this.cloudinary.cloudinaryApiUrl("upload", options);
284310

285-
String callback = Cloudinary.asString(options.get("callback"), this.cloudinary.getStringConfig("callback"));
286-
if (callback == null) {
287-
throw new IllegalArgumentException("Must supply callback");
288-
}
289-
options.put("callback", callback);
290-
291-
Map<String, Object> params = this.buildUploadParams(options);
292-
signRequestParams(params, options);
293-
294-
// Remove blank parameters
295-
for (Iterator<Object> iterator = params.values().iterator(); iterator.hasNext(); ) {
296-
String value = (String) iterator.next();
297-
if (StringUtils.isBlank(value)) {
298-
iterator.remove();
299-
}
300-
}
311+
String tagParams = StringEscapeUtils.escapeHtml(prepareUploadTagParams(options));
312+
313+
String cloudinaryUploadUrl = getUploadUrl(options);
301314

302315
StringBuilder builder = new StringBuilder();
303316
builder.append("<input type='file' name='file' data-url='").append(cloudinaryUploadUrl).
304-
append("' data-form-data='").append(StringEscapeUtils.escapeHtml(JSONObject.toJSONString(params))).
317+
append("' data-form-data='").append(tagParams).
305318
append("' data-cloudinary-field='").append(field).
306319
append("' class='cloudinary-fileupload");
307320
if (htmlOptions.containsKey("class")) {

0 commit comments

Comments
 (0)