Base64Uploader.java 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.baidu.ueditor.upload;
  2. import com.baidu.ueditor.PathFormat;
  3. import com.baidu.ueditor.define.AppInfo;
  4. import com.baidu.ueditor.define.BaseState;
  5. import com.baidu.ueditor.define.FileType;
  6. import com.baidu.ueditor.define.State;
  7. import java.util.Map;
  8. import org.apache.commons.codec.binary.Base64;
  9. public final class Base64Uploader {
  10. public static State save(String content, Map<String, Object> conf) {
  11. byte[] data = decode(content);
  12. long maxSize = ((Long) conf.get("maxSize")).longValue();
  13. if (!validSize(data, maxSize)) {
  14. return new BaseState(false, AppInfo.MAX_SIZE);
  15. }
  16. String suffix = FileType.getSuffix("JPG");
  17. String savePath = PathFormat.parse((String) conf.get("savePath"),
  18. (String) conf.get("filename"));
  19. savePath = savePath + suffix;
  20. String physicalPath = (String) conf.get("rootPath") + savePath;
  21. State storageState = StorageManager.saveBinaryFile(data, physicalPath);
  22. if (storageState.isSuccess()) {
  23. storageState.putInfo("url", PathFormat.format(savePath));
  24. storageState.putInfo("type", suffix);
  25. storageState.putInfo("original", "");
  26. }
  27. return storageState;
  28. }
  29. private static byte[] decode(String content) {
  30. return Base64.decodeBase64(content);
  31. }
  32. private static boolean validSize(byte[] data, long length) {
  33. return data.length <= length;
  34. }
  35. }