图片保存到数据库blob字段

SpringBoot+Vue 图片上传保存到类型为BLOB类型的Oracle数据库(数据库可以直接看图片) SpringBoot+Vue 图片上传到BLOB类型的Oracle数据库 阅读详情

前言

目前个人总结图片保存有三种方式:
1.大型有关图片的项目一般都是保存到一个第三方的云服务器上,数据库保存图片的地址就可以了。
2.也可以将图片上传到自己项目所在的服务器上,数据库保存图片的地址就可以了。
3.第三种就是将图片保存到数据库的blob字段里。
今天主要说第三种方式。

图片保存

dao层代码如下:

public void doSave(Map<String, Object> parasMap) throws Exception {
        StringBuffer sql = new StringBuffer();
        Connection conn = null;
        PreparedStatement pst = null;

        try{
            conn = this.getConnection();
            sql.append("insert into picture_t  ");
            sql.append("(id,name,picture)   ");
            sql.append("values(picture_s.nextval,'"+parasMap.get("name")+"',?)  ");

            pst = conn.prepareStatement(sql.toString());
            File file =  new File(parasMap.get("src"));
            FileInputStream fStream = new FileInputStream(file);
            pst.setBinaryStream(1, fStream, (int) file.length());
            pst.execute();

        }catch(Exception e){
            System.out.pring(e);
        }finally{
            close(pst,conn);
        }
}

上边的代码中可以看到,参数parasMap中包含图片的路径(parasMap.get(“src”)),将图片路径利用文件输入流读取图片保存到数据库中,数据库中picture字段就是blob类型。

图片读取展现到页面

dao层代码正常写,从数据库select图片所在的blob字段,用rs.getBlob(“picture”)获取并保存到Map中然后添加到list中即可。
action中接收到该list后做如下处理:

public void queryImg(HttpServletRequest request,
            HttpServletResponse response) throws Exception{

        String id = request.getParameter("id");
        String imgIndex = request.getParameter("imgIndex");
        List<Map<String,Object>>  list =  bo.queryImgById(id);
        Blob blob=(Blob) list.get( Integer.parseInt(imgIndex)).get("picture");
        int length = (int) blob.length();
        byte[] bImage = new byte[length];
        InputStream is = new BufferedInputStream(blob.getBinaryStream());
        is.read(bImage, 0, length);
        OutputStream out = response.getOutputStream(); 
        out.write(bImage);
        out.flush(); 
        out.close();
        is.close();
    }

上边的代码中可以看出将图片从list里取出来后强转为Blob类型,这个类型是java自带的类。
页面的img标签的src要请求到这个方法中,如下:

<img src="/picture.do?method=queryImg&id=1&imgIndex=2">

注意事项

以上方法就可以将图片保存到数据库并回显到页面上。难点在于如何同时处理多张图片。对于保存来说就是写个循环保存即可,而对于回显来说,就要先写一个方法,查询一共有多少张图片回显,比如有3张图片,那么在页面上就要有三个
<img src="/picture.do?method=queryImg&id=1&imgIndex=2">
每个img标签的不同之处在于向后端传的参数imgIndex,分别为0、1、2,
这样就可以同时回显3张图片了。

MFC使用ODBC把图片写入blob字段 第一,添加一个基于CRecordSet的类为CMyRecordset1,设置如下图片。 第二,读图片文件,写入blob字段 CDatabase db; // db.Open(NULL, FALSE, FALSE, "ODBC;DSN=kdmysql;UID=root;PWD=111"); db.Open(NULL,FALSE,FALSE,"ODBC;DSN=kdmysql;UID=root;... 阅读详情

相关推荐

Synopsys Sentaurus TCAD新手教程:从零开始仿真trench MOSFET(附完整代码解析)

本文提供Synopsys Sentaurus TCAD新手教程,详细讲解从零开始仿真trench MOSFET的全过程,包括环境搭建、外延生长、沟槽刻蚀、栅极形成等关键步骤,并附完整代码解析。通过实际案例帮助半导体工程师掌握Sprocess操作技巧,优化工艺参数设置,提升仿真效率。

weixin_30505225的博客 217

Oracle/MySQL数据库中插入图片BLOB字段的方法

1./opt/pic/目录下存放图片文件 2.先创建表,存储图片的字段为BLOB类型,创建表可以用sql也可以用navicat等工具,先插入数据填入其他字段,BLOB为null不填 CREATE TABLE PICTURE_SRC ( "ID" NUMBER NOT NULL ENABLE, "IDENTIFICATION" VARCHAR2(255), "PROVINCE" VARCH

sunny05296的博客 1万+

AI 小说生成器本地部署完全指南

这篇文章介绍了本地部署AI小说生成器的完整指南,主要面向网文作者、内容创作者和AI爱好者。文章从环境搭建到创作实践,详细讲解了三种主流部署方案:Ollama(推荐新手)、LMStudio(图形界面)和text-generation-webui(高级定制)。内容涵盖硬件需求、系统架构、模型选择、API对接、提示词工程等关键技术环节,并提供了小说创作的特制提示词模板和参数调优建议。文章还讨论了长篇小说管理、多模型协作等进阶技巧,以及版权伦理等法律问题。最后推荐了相关工具资源和社区论坛,帮助读者实现安全、高效、可

珂珂可爱多 2251

若依改变上传文件路径,结果预览不出来了

但是我需要做的是,上传后保存在临时目录,并且不存入数据库,等表单提交了确定了最终需要保存的文件时再写入数据库。当时第一反应就是"不会必须先保存到数据库吧",但是想了一下就推翻了,不会这么傻逼的。于是我改了下代码,结果文件是没问题,正常保存下来了,但是预览却出错了,报404。可以看到,这里是直接指定了这个RuoYiConfig.getProfile()这个路径的。我是因为项目需要,之前若依上传文件是直接将上传好的文件保存在了数据库中。我的逻辑是->upload接口先保存到临时目录,表单提交后再写入数据库。

weixin_64772672的博客 2108

Claude Code 完整学习笔记

Claude Code 学习笔记摘要 Claude Code是Anthropic推出的智能编码工具,基于Claude Opus 4.5模型构建,提供跨平台支持(终端/VS Code/JetBrains/Web等)。核心功能包括: 代码库理解与多文件编辑 命令执行与开发工具集成 智能体协作开发流程 安装要求Node.js≥18,提供原生/Homebrew/npm等多种安装方式,支持环境变量配置API访问。基础交互模式包括会话管理、文件操作和代码审查等功能,可自动读写文件并执行精确修改。 (149字)

虚心若愚 812

景观格局指数计算方法及代表的生态学意义(待补充)

景观指数 斑块密度(PD) 斑块密度(PD)表现某种斑块在景观中的密度,可反映出景观整体的异质性与破碎度[17],公式为PD=NP/A(1)式中NP———斑块数量,个A———景观或斑块的总面积,hm2PD———斑块密度,个/hm2 最大斑块指数(LPI) 最大斑块指数(LPI)用于确定景观中的优势斑块类型,间接反映人类活动干扰的方向和大小,公式为LPI=amaxA×100%(0≤LPI≤100%)(2)式中amax———景观或某一种斑块类型中最大斑块的面积,hm2LPI———最大斑块指数,% 凝聚

soderayer的博客 13万+

基于若依VUE实现图片上传保存到数据库和下载预览功能

图片上传 前台代码 上传图片表单部分 <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="80px" enctype="multipart/form-data"> <el-form-item lab

yuyuchi的博客 1万+

CentOS7 编译升级GCC至9.3.0

1)下载GCC9.2.0源码并解压 从GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下: wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC...

haha123486的博客 1万+

Oracle 如何将图片插入BLOB字段

开发要求把两张图片插入到表中,趁机学了下oracle把图片插入blob字段的方法 1. 在操作系统创建一个oracle用户可以访问的目录 mkdir -p /home/oracle/picture 2. 把图片上传到该目录并允许oracle用户访问 3. 在数据库中创建目录 create or replace directory images as '/home/ora...

Hehuyi_In的博客 8062

十三种通信接口芯片——《器件手册--通信接口芯片》

通信接口芯片用于实现差分信号的传输,具有抗干扰能力强、传输距离远等优点。RS485支持多点通信,可连接多个收发器,而RS422支持单向多点通信。广泛应用于工业自动化、过程控制、仪器仪表、楼宇自动化(如暖通空调、保安系统)、电机控制等领域。ST3485EBDRTP8485ESR用于实现串行通信,支持点对点通信,传输距离相对较短,数据速率较低。常用于计算机与外设(如打印机、调制解调器)之间的通信。如芯力特的SIT3232,可作为ST3232的替代品。

XU157303764的博客 4273

QGIS编译(跨平台编译)001:Flex、Bison编译(安装)(Windows、Linux、MacOS环境下安装)

QGIS编译;Flex、Bison编译(安装)(Windows、Linux、MacOS环境下安装)

LuckyHanMo的博客 3080

将图片保存至Oracle数据库Blob字段中

用FileUpLoad控件上传图片并将图片转换为byte[]。            Stream s = upload.PostedFile.InputStream;             BinaryReader br = new BinaryReader(s);            byte[] myByte = new byte[s.Length];            br

大巧不工 7769

YOLO系列算法改进 | Neck改进篇 | 融合FAAFusion傅里叶角度对齐模块 | 攻克多尺度方向特征冲突,角度检测精度飙升! | CVPR 2026

YOLO系列算法改进 | Neck改进篇 | 融合FAAFusion傅里叶角度对齐模块 | 攻克多尺度方向特征冲突,角度检测精度飙升! | CVPR 2026 (以YOLO26最新目标检测模型为基础,利用FAAFusion傅里叶角度对齐模块改进Neck部分)

2502_91881744的博客 315

c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库

转自:http://heisetoufa.iteye.com/blog/262798   using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using Syst

dreamgis的专栏 1614

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

springMVC实现异步上传图片,并保存到Oracle数据库blob类型的字段中

如下: 将图片保存到oracle数据库中 只返回给前端一个图片ID //图片上传保存到oracle blob类型字段中 @Override @RequestMapping(value = &quot;/saveTrafficJeevesImgs&quot;, method = RequestMethod.POST) public Object saveTraff...

JT1992413的博客 1832

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库(转)...

需要打开源码改一下数据源和表名还有字段名 C#代码 usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usi...

weixin_30552811的博客 186

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

图片上传到数据库,保存到Blob字段中

需求:从系统上传图片,将图片信息保存到数据库的blob字段中,并提供照片的查询接口 数据表结构如下: controller: package com.success.controller; import .. /** * 系统图标切换 */ @RestController @Slf4j @RequestMapping("/systemPageLogo") public class SystemPageLogoController { @Autowired privat..

weixin_40052304的博客 1613

插入图片到数据库(BLOB大字段保存对象)

key words : blob , oracle ,插入图片 come from  here 显示blob try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); Connection con=DriverManager.getConnection("jdbc:odbc:Multimedi

俊哥 1465

blob大小限制 oracle_java 处理oracle blob字段(图片)大小 再保存到数据库

在java中 查询一个表的 图片字段(blob类型)判断该图片大小,如果大于100K,那么就把该图片处理成100K我现在做到获取该图片但是 处理图片大小遇到了问题出现错误的地方:src = javax.imageio.ImageIO.read(inputStream);我的代码如下package com.hinge.tools;import java.awt.image.BufferedImag...

weixin_39556590的博客 981

C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB

C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB 我用的数据库是Oracle,就目前来看,许多数据库现在都倾向于Oracle数据库,对ORACLE数据库基本的操作也是必须要掌握的,函数以及语法。今天我们来讲解一下如何使用c#编程语言完成Winform窗体上传图片到数据库,以及从数据库读取BLOB文件显示在窗体里,这里要用到的一个知识就是数据的转换。 一、连接数据库...

weixin_30420305的博客 357

java中 查询一个表的 图片字段(blob类型) 处理图片大小后保存到数据库

在java中 查询一个表的 图片字段(blob类型) 判断该图片大小,如果大于100K,那么就把该图片处理成100K 我现在做到获取该图片 但是 处理图片大小遇到了问题 出现错误的地方:src = javax.imageio.ImageIO.read(inputStream); 我的代码如下 package com.hinge.tools; impo...

quanwei132 393

java实现从一个数据库导入数据到另外一个数据库以及将大量图片导入到数据库中jdbc实现方法

需求背景 在某地客户现场,遇到一个需求,将一个数据库中的某个表的数据导入到另外一台服务器上的数据库,并且表中包含blob字段,在使用kettle失败的情况下,shell脚本咱又不熟悉,作为一个java程序猿,紧急使用java的jdbc实现处理此业务,当然程序还是有很多可以完善的地方,此例子比较适合新人练手学习。 第一个类:将数据从一个库导出写入另外一个库 这里假定有数据库A和B,某个表包含Blob...

zhangbinch的博客 4099

c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库...

需要打开源码 改一下数据源和表名还有字段名 [code="c#"]using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windo...

黑色头发 472

标准的hibernate存取blob和clob字段的方法

昨在颇为郁闷,利用hibernate保存图片到blob字段时出现保存成功,但读出来的确是空数据的问题;但回家一试,竟然是OK的,不知哪个环节出了问题,但总算是圆满结局~ 程序代码Transaction tx=session.beginTransaction();byte[] b=new byte[1024];img.setTitle(title);img.setAdddate(new 

spring028的专栏 687

Android 保存图片到Sqlite 数据库并从数据库中获得图片

SQlite数据库中可以直接保存图片,有两点说明: 1.建数据库表时,保存图片的表字段类型为BLOB。 2.图片类型为Bitmap 保存到数据库中的代码如下: final ByteArrayOutputStream os = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG,

minyou_1314的专栏 5662
上一篇: Activiti工作流学习(四)
下一篇: Activiti工作流学习(五)
老贼大魔王
博客等级 码龄10年 23粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值