getRemoteImage.jsp 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <%@ page language="java" pageEncoding="utf-8"%>
  2. <%@ page import="java.io.*"%>
  3. <%@ page import="java.net.*"%>
  4. <%@ page import="java.util.*"%>
  5. <%@ page import="ueditor.Uploader" %>
  6. <%
  7. request.setCharacterEncoding("utf-8");
  8. response.setCharacterEncoding("utf-8");
  9. String url = request.getParameter("upfile");
  10. String state = "远程图片抓取成功!";
  11. String filePath = "upload";
  12. String[] arr = url.split("ue_separate_ue");
  13. String[] outSrc = new String[arr.length];
  14. for(int i=0;i<arr.length;i++){
  15. //保存文件路径
  16. String str = application.getRealPath(request.getServletPath());
  17. File f = new File(str);
  18. String savePath = f.getParent() + "/"+filePath;
  19. //格式验证
  20. String type = getFileType(arr[i]);
  21. if(type.equals("")){
  22. state = "图片类型不正确!";
  23. continue;
  24. }
  25. String saveName = Long.toString(new Date().getTime())+type;
  26. //大小验证
  27. HttpURLConnection.setFollowRedirects(false);
  28. HttpURLConnection conn = (HttpURLConnection) new URL(arr[i]).openConnection();
  29. if(conn.getContentType().indexOf("image")==-1){
  30. state = "请求地址头不正确";
  31. continue;
  32. }
  33. if(conn.getResponseCode() != 200){
  34. state = "请求地址不存在!";
  35. continue;
  36. }
  37. File dir = new File(savePath);
  38. if (!dir.exists()) {
  39. dir.mkdirs();
  40. }
  41. File savetoFile = new File(savePath +"/"+ saveName);
  42. outSrc[i]=filePath +"/"+ saveName;
  43. try {
  44. InputStream is = conn.getInputStream();
  45. OutputStream os = new FileOutputStream(savetoFile);
  46. int b;
  47. while ((b = is.read()) != -1) {
  48. os.write(b);
  49. }
  50. os.close();
  51. is.close();
  52. // 这里处理 inputStream
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. System.err.println("页面无法访问");
  56. }
  57. }
  58. String outstr = "";
  59. for(int i=0;i<outSrc.length;i++){
  60. outstr+=outSrc[i]+"ue_separate_ue";
  61. }
  62. outstr = outstr.substring(0,outstr.lastIndexOf("ue_separate_ue"));
  63. response.getWriter().print("{'url':'" + outstr + "','tip':'"+state+"','srcUrl':'" + url + "'}" );
  64. %>
  65. <%!
  66. public String getFileType(String fileName){
  67. String[] fileType = {".gif" , ".png" , ".jpg" , ".jpeg" , ".bmp"};
  68. Iterator<String> type = Arrays.asList(fileType).iterator();
  69. while(type.hasNext()){
  70. String t = type.next();
  71. if(fileName.endsWith(t)){
  72. return t;
  73. }
  74. }
  75. return "";
  76. }
  77. %>