实现图片上传功能 给博客注入灵魂 手把手教学

在做博客项目练手时,除了CRUD,支持Markdown语法。最能够丰富你的博客内容的,莫过于给你的博客加上图片,不论是封面图,还是博客中的流程图等。加上图片,就相当于注入了灵魂,给你的博客锦上添花!

在这里插入图片描述
在此我使用的是七牛云作为示例,原因就是10G以内免费。对于个人博客来说足以。

登录七牛云官网进行注册,实名认证,并开启对象存储。新建空间。(建议使用私有空间,防止被人利用图床)

在这里插入图片描述

创建成功后会自动生成一个测试域名,30后过期。建议绑定自己的域名!

在这里插入图片描述

绑定域名需要自己云服务器,并且购买域名,再进行域名备案,最后进行域名解析。(再次不在赘述)

具体格式如:

cdn.example.com
img.example.com

接下来需要配置CNAME

官网关于配置CNAME的教程

进入您购买的云服务平台相关的云解析DNS列表,添加记录。

在这里插入图片描述

记录值就是CNAME的值

在这里插入图片描述

接下来进入正题,将图片上传到我们注册的对象存储私有空间中。

官方Java SDK文档

上传图片需要前后端的配合,前端负责将请求发送到后端,后端通过request获取文件资源,转化为字节流传输到云存储服务器。
首先,获取请求。返回状态码,url。
@Controller
public class FileController {

    @Autowired
    private QiniuProvider qiniuProvider;

    @RequestMapping("/file/upload")
    @ResponseBody
    public FileDTO upload(HttpServletRequest request) {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        // 获取图片资源
        MultipartFile file = multipartRequest.getFile("editormd-image-file");
        try {
        	// 上传图片,返回带有token的url
            String fileURL = qiniuProvider.upload(file.getInputStream());
            FileDTO fileDTO = new FileDTO();
            fileDTO.setSuccess(1);
            fileDTO.setUrl(fileURL);
            return fileDTO;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

上传图片,填写配置信息是注意bucket是你的空间名称。domain of bucket 是你的空间域名,记得加上http前缀😂

@Component
public class QiniuProvider {
	// 配置信息
    @Value("${qiniu.access_token}")
    private String AK;
    @Value("${qiniu.secret_token}")
    private String SK;
    @Value("${qiniu.bucket}")
    private String BUCKET;
    @Value("${qiniu.domain_of_bucket}")
    private String DOMAIN_OF_BUCKET;


    public String upload(InputStream inputStream) throws QiniuException {
    	// 设置文件名
        String filename = UUID.randomUUID().toString();
        Auth auth = Auth.create(AK, SK);
        String token = auth.uploadToken(BUCKET);
        Configuration cfg = new Configuration(Region.huanan());
        UploadManager uploadManager = new UploadManager(cfg);
        Response response = uploadManager.put(inputStream, filename, token, null, null);
        if (response.isOK()) {
            return download(filename);
        }
        return null;
    }

    public String download(String filename) {
        Auth auth = Auth.create(AK, SK);
        String publicUrl = String.format("%s/%s", DOMAIN_OF_BUCKET, filename);
        // 过期时间,返回Url
        long expireInSeconds = 31536000;
        return auth.privateDownloadUrl(publicUrl, expireInSeconds);
    }
}

至此,图片上传功能已经实现,代码写的不好,多多包涵!有不对的地方,欢迎留言!

i
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍一下如何使用Java实现网盘上传下载共享,以及如何手把手搭建Java共享网盘。 1. 实现网盘上传下载共享 要实现网盘上传下载共享,我们需要掌握以下几个方面的知识: - Java Web开发 - 文件上传下载 - 文件共享 首先,我们可以使用Java Web开发框架,如Spring MVC,来搭建一个Web应用程序。然后,我们可以使用Java提供的文件上传下载API,如Servlet API中的Part接口和FileUpload库,来实现文件上传下载功能。最后,我们可以将上传的文件保存在服务器上,并在需要共享文件时提供下载链接或者通过Web应用程序提供文件浏览和下载功能。 2. 手把手搭建Java共享网盘 要手把手搭建Java共享网盘,我们需要按照以下步骤进行: - 步骤一:选择合适的Java Web开发框架,如Spring MVC或者Struts2。 - 步骤二:在Web应用程序中创建文件上传下载功能,可以使用Servlet API中的Part接口和FileUpload库来实现。 - 步骤三:在Web应用程序中创建文件共享功能,可以使用Java IO或者文件系统API来实现。 - 步骤四:在Web应用程序中创建用户管理和权限控制功能,可以使用Java Web开发框架提供的安全框架或者手动编写代码来实现。 - 步骤五:将Web应用程序部署到Java Web服务器上,如Tomcat或者Jetty,即可实现Java共享网盘。 以上就是实现网盘上传下载共享和手把手搭建Java共享网盘的方法和步骤。希望能够对您有所帮助。如果您有其他问题或者需要更详细的解答,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值