当前位置: 首页 > wzjs >正文

上海网站关键词优化方法引用网站资料怎么注明

上海网站关键词优化方法,引用网站资料怎么注明,电商网站建设怎么样,进口香烟网上商城富文本编辑器的上传的图片默认转为base64,但是如果需要保存到数据库,base64的数据就太大了,所以一般都会长传到文件服务器,然会返回图片url。 但是当我们需要把富文本编辑器的内容导出为html时,因为图片时url,当浏览器…

富文本编辑器的上传的图片默认转为base64,但是如果需要保存到数据库,base64的数据就太大了,所以一般都会长传到文件服务器,然会返回图片url。

但是当我们需要把富文本编辑器的内容导出为html时,因为图片时url,当浏览器离线浏览时就无法显示了,所以,在导出时,如果是图片,就把图片转为base64,这样即使在离线的情况下也能显示图片了。
在这里插入图片描述

package com.chen.utils;import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;import com.jfinal.kit.PathKit;import cn.hutool.core.util.IdUtil;/**
* @author 作者 @Chenxc:
* 
*/
public class Export2HtmlUtil {private static final String localPath = PathKit.getWebRootPath()+File.separator+"genhtml";private static final String uploadPath = PathKit.getWebRootPath()+File.separator+"upload";/****把html字符串转成文件*/public static File HtmlToFile(String html) {if(null == html) {return null;}String uuid = IdUtil.simpleUUID();String htmlFilePath = localPath+File.separator+uuid+".html";String convertedHtml;try {convertedHtml = convertHtmlImagesToBase64(html);Path path = Paths.get(htmlFilePath);Files.write(path, convertedHtml.getBytes("utf-8"));return path.toFile();} catch (IOException e) {System.err.println("Failed to HtmlToFile: ");e.printStackTrace();return null;}}private static String convertHtmlImagesToBase64(String html) throws IOException {Document doc = Jsoup.parse(html);Elements imgs = doc.select("img");for (Element img : imgs) {String imageUrl = img.attr("src");if (isRemoteUrl(imageUrl)) {try {String base64Data = fetchImageAsBase64(imageUrl);img.attr("src", base64Data);} catch (IOException e) {System.err.println("Failed to process image: " + imageUrl);e.printStackTrace();}}else if(isLocalUrl(imageUrl)){try {String substring = imageUrl.substring(imageUrl.lastIndexOf("/")+1);String path = uploadPath+File.separator+substring;String base64Data = convertLocalImgToBase64WithPrefix(path);img.attr("src", base64Data);} catch (Exception e) {System.err.println("Failed to process image: " + imageUrl);e.printStackTrace();}}}return doc.outerHtml();}private static String convertLocalImgToBase64WithPrefix(String filePath) throws Exception {byte[] imageBytes = readFileBytes(filePath);String mimeType = Files.probeContentType(Paths.get(filePath));return "data:" + mimeType + ";base64," +Base64.getEncoder().encodeToString(imageBytes);}private static String fetchImageAsBase64(String imageUrl) throws IOException {URL url = new URL(imageUrl);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setConnectTimeout(5000);connection.setReadTimeout(5000);try (InputStream inputStream = connection.getInputStream();ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {if (connection.getResponseCode() != 200) {throw new IOException("HTTP error: " + connection.getResponseCode());}String contentType = connection.getContentType();if (contentType == null || !contentType.startsWith("image/")) {contentType = getContentTypeFromExtension(imageUrl);}byte[] buffer = new byte[4096];int bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead);}byte[] imageBytes = outputStream.toByteArray();String base64 = Base64.getEncoder().encodeToString(imageBytes);return "data:" + contentType + ";base64," + base64;} finally {connection.disconnect();}}private static String getContentTypeFromExtension(String imageUrl) {if (imageUrl.toLowerCase().endsWith(".png")) return "image/png";if (imageUrl.toLowerCase().endsWith(".jpg") || imageUrl.toLowerCase().endsWith(".jpeg")) return "image/jpeg";if (imageUrl.toLowerCase().endsWith(".gif")) return "image/gif";if (imageUrl.toLowerCase().endsWith(".webp")) return "image/webp";return "application/octet-stream";}private static byte[] readFileBytes(String filePath) throws Exception {Path path = Paths.get(filePath);return Files.readAllBytes(path);}private static boolean isRemoteUrl(String url) {return url.startsWith("http://") || url.startsWith("https://");}private static boolean isLocalUrl(String url) {return url.startsWith("/upload") || url.startsWith("upload");}
}

文章转载自:

http://FHMmtkIk.dfygx.cn
http://4OaT9rBd.dfygx.cn
http://BS2Wc4ts.dfygx.cn
http://r1opumpY.dfygx.cn
http://ujKcXibA.dfygx.cn
http://bxdyVGjY.dfygx.cn
http://szh9kIQJ.dfygx.cn
http://xZPVcFjn.dfygx.cn
http://HkoHL5nT.dfygx.cn
http://D561xOan.dfygx.cn
http://5s4ioTL1.dfygx.cn
http://fdyVv1o3.dfygx.cn
http://crvOmrqt.dfygx.cn
http://MiSzjg6E.dfygx.cn
http://6op8Fczx.dfygx.cn
http://DcEXgJj5.dfygx.cn
http://IK5vm8St.dfygx.cn
http://hgkAzjZw.dfygx.cn
http://xvjk2sPE.dfygx.cn
http://Y5DxcQBi.dfygx.cn
http://ARqKpsXy.dfygx.cn
http://tr9WKrRh.dfygx.cn
http://2LAzY00p.dfygx.cn
http://dqIC5FST.dfygx.cn
http://LmlsXzk2.dfygx.cn
http://VcQVORTw.dfygx.cn
http://dmww459n.dfygx.cn
http://BMUbXap3.dfygx.cn
http://h5cjiVSZ.dfygx.cn
http://iKNO0UfC.dfygx.cn
http://www.dtcms.com/wzjs/625564.html

相关文章:

  • 西凤九网站建设的目标wordpress可注册
  • php网站开发技术文档咸阳兼职做网站
  • 网站建设jwzcq网站开发文献综述范文
  • 孟州网站建设iis做的网站如何添加播放器
  • 商会建设网站说明qq群优惠券里面网站怎么做的
  • 做调查问卷网挣钱的网站电商网站销售数据分析
  • 数学教学网站开发网页升级访问中每天正常更新中
  • 设计网站注意哪些问题一线城市做网站工资有多少
  • 成功的网站建设网站建设及管理制度文章
  • 网站可信认证必须做上海比较有名的外贸公司
  • 杨园建设社区网站ks免费刷粉网站推广马上刷
  • 南通公司做网站建立网站要怎么做
  • 合肥做网站好的公司哪家好siteapp wordpress
  • 全国网站设计公司互联网网站类型
  • 电子商务网站如何推广山东网站备案注销申请表
  • 做淘宝网站用什么浏览器怎么创建邮箱地址
  • 百度地图网站开发泉州专业网站建设公司哪家好
  • html制作音乐网站代码少儿编程老师需要具备什么条件
  • 0731网站丽水专业网站建设哪家好
  • 制作一个网站多少钱啊做生产计划类的网站
  • 网站和微信订阅号优势用dw制作网站模板下载地址
  • 门户网站建设与运行情况良好网站备案单位的联系方式
  • 珠海网站设计公司客户管理系统服务
  • 广东手机网站建设报价360网页游戏大全
  • 企业网站备案需要多久深圳定制网站
  • 可以做公众号的一些网站网站开发哪里便宜
  • 网站建设 类型建筑人
  • 做网站总结与体会制作简单的网页的软件
  • 南昌做房地产用哪个网站wordpress 优酷插件
  • 金乡县网站开发dw做个人简历网页怎么做