Java 将html URL 保存生成html文件下载存入本地

HtmlSaveUtil.java

import java.io.*;
import java.net.URL;

public class HtmlSaveUtil {

    public static void saveHtml(String filepath, String str) throws IOException {
        //字节输出流
        FileOutputStream fos = new FileOutputStream(new File(filepath));
        //接收字节输入流
        InputStream is =  new URL(str).openStream();
        //为字节输入流加缓冲
        BufferedInputStream bis = new BufferedInputStream(is);
        //为字节输出流加缓冲
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        int length;
        byte[] bytes = new byte[1024*20];
        while((length = bis.read(bytes, 0, bytes.length)) != -1){
            fos.write(bytes, 0, length);
        }
        bos.close();
        fos.close();
        bis.close();
        is.close();
    }

    public static void main(String[] args) throws IOException {
        String url="https://blog.csdn.net/qq_35387940/article/details/129611551";
        HtmlSaveUtil.saveHtml("D:\\blog\\129611551.html",url);

    }

}

运行main方法, 效果:

 看一眼,可以看到整个网页的代码:

 

好了,就到这。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现前端上传文件到本地并将url存入本地数据库,需要前后端协同完成以下几个步骤: 1. 前端使用 Vue.js 实现文件上传,并将文件传递给后端。 2. 后端使用 Spring Boot 接收前端传递的文件,并将文件保存到本地。 3. 后端生成本地文件URL,将URL保存到数据库中。 4. 前端从数据库中获取URL,展示文件信息。 以下是具体实现步骤: 1. 前端实现文件上传,使用 Vue.js 和 Axios 实现,代码如下: ```html <template> <div> <input type="file" @change="onFileChange"> <button @click="uploadFile">上传</button> </div> </template> <script> import axios from 'axios'; export default { data() { return { file: null }; }, methods: { onFileChange(event) { this.file = event.target.files[0]; }, uploadFile() { const formData = new FormData(); formData.append('file', this.file); axios.post('/api/upload', formData).then(response => { console.log(response.data); }).catch(error => { console.log(error); }); } } }; </script> ``` 2. 后端使用 Spring Boot 接收前端传递的文件,并将文件保存到本地。代码如下: ```java @RestController @RequestMapping("/api") public class FileController { @Value("${file.upload-dir}") private String uploadDir; @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException { String filename = file.getOriginalFilename(); Path path = Paths.get(uploadDir, filename); Files.write(path, file.getBytes()); return "上传成功"; } } ``` 在 Spring Boot 中,使用 `@Value` 注解获取配置文件中的变量值,即上传文件存储的路径。 3. 后端生成本地文件URL,将URL保存到数据库中。代码如下: ```java @RestController @RequestMapping("/api") public class FileController { @Autowired private FileRepository fileRepository; @Value("${file.base-url}") private String baseUrl; @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException { String filename = file.getOriginalFilename(); Path path = Paths.get(uploadDir, filename); Files.write(path, file.getBytes()); String url = baseUrl + filename; fileRepository.save(new FileEntity(filename, url)); return "上传成功"; } } ``` 在 Spring Boot 中,使用 `@Value` 注解获取配置文件中的变量值,即本地文件URL前缀。 4. 前端从数据库中获取URL,展示文件信息。代码如下: ```html <template> <div> <div v-for="file in files" :key="file.id"> <a :href="file.url">{{ file.name }}</a> </div> </div> </template> <script> import axios from 'axios'; export default { data() { return { files: [] }; }, mounted() { axios.get('/api/files').then(response => { this.files = response.data; }).catch(error => { console.log(error); }); } }; </script> ``` 在 Vue.js 中,使用 `axios` 发送请求获取文件信息,展示文件的名称和URL。需要注意的是,文件URL需要使用 `<a>` 标签展示,并且需要设置 `href` 属性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小目标青年

对你有帮助的话,谢谢你的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值