html5表单和文件

上传文件 使用HTML5的FormData 提交表单和文件数据 后台部分: 数据库可以存放二进制流数据  主流的如mysql  oracle 中的blob类型就是二进制流。但是数据库一般是系统的瓶颈,文件建议存放在硬盘,路劲存放在数据库。不管目前针对 的是什么项目,文件都不是存放在数据库里  而是放到独立的一台静态文件服务器中,而是把文件目的地(地址)放到数据库中  好处是:1、对于外部的访问,数据库的读写负载会很小,也就是主观上减少了服务器的压力 阅读详情
1、新增元素和属性
  •      form属性
在HTML4中,表单内的从属元素必须书写在表单内部,但是在HTML5中,可以把它们书写在页面上任何地方,然后给该元素指定一个form属性,属性值为该表单的id,这样就可以声明该元素从属于指定表单了。
<form id="testform">
<input type="text">
</form>
<textarea form="testform"></textarea>
  •      formaction属性
在HTML4中,一个表单内的所有元素都只能通过表单的action属性统一提交到另一个页面,而在HTML5中可以给所有的提交按钮,诸如<input type="submit">、
<input type="image">、<button type="submit">都增加不同的formaction属性
<form id="testform" action="serve.jsp">
     <input type="submit" name="s1" value="v1" formation="s1.jsp">提交到S1
     <input type="submit" name="s2" value="v2" formation="s2.jsp">提交到S2
     <input type="submit" name="s3" value="v3" formation="s3.jsp">提交到S3
     <input type="submit">
</form>
PS: 目前尚没有浏览器支持这一属性
  •      placeholder属性
placeholder是指当文本框(input、textarea)处于未输入状态时文本框中显示的输入提示。
<input type="text" placeholder="input me"/>
  •      autofocus属性
给文本框、选择框或按钮控件加上该属性,当画面打开时,该控件自动获得光标焦点
<input type="text" autofocus/>
  •      list属性
在HTML5中,为单行文本框(<input type="text">) 增加了一个list属性,该属性的值为某个datalist元素的id。datalist元素也是HTML5新增的元素,改元素类似于选择框,但是当用户 想要设定的值不在选择列表之内时,允许其自行输入。该元素本身并不显示,而是当文本框获得焦点时以提示输入的方式显示。为了避免在没有支持该元素的浏览器 显示,可以用CSS将其隐藏。
<input type="text" name="greeting" list="greetings"/>
<!--使用style="display:none;" 将datalist元素设定为不显示-->
<datalist id="greetings" style="display:none;">
     <option value="Good Morning">Good Morning</option>
     <option value="Hello">Hello</option>
     <option value="Good Afternoon">Good Afternoon</option>
</datalist>
  •      autocomplete属性
辅助输入所用的自动完成
<input type="text" name="greeting" list="greetings" autocomplete="on"/> 
PS: chrome20不支持
  • 大幅度地增加与改良了input元素的种类
search、tel、url、email等,可参照:

     output元素
output元素必须从属于某个表单,也就是说,必须将它书写在表单内部,或者对它添加form属性
<form id="testform">
请选择一个值
<input name="range1" type=range min=0 max=100 step=5/>
<output onforminput="value=range1.value">50</output>
</form>
PS: 目前只有Opera支持得比较好

2、表单验证

2.1、自动验证
  • require属性、pattern属性
<form method="post">
     <input name="text" type="text" required pattern="^\w.*$"/>
     <input type="submit"/>
</form>
  • min属性与max属性
min与max这两个属性是数值类型或日期类型的input元素的专用属性
  • step属性
step属性控制input元素中的值增加或减少时的步幅

2.2、显示验证
     form元素与input元素(包括select元素与textarea元素)都具有一个checkValidity方法。调用该方法,可以显示地对表 单内所有元素内容或单个元素内容进行有效性验证。checkValidity方法以boolean的形式返回验证结果。
<script language="javascript">
function check(){
     var email = document.getElementById("email");
     if(email.value==""){
          alert("请输入Email地址");
          return false;
     }...
}
</script>
<form id="testform" onsubmit="return check();">
     Email: 
     <input name="email" type="email" id="email"/><br/>
     <input type="submit"/>
</form>

文件各种上传,离不开的表单 [html5] 之前我一直很疑惑,为什么上传文件一定要用form包起来,现在算是大概明白了。最开始在javascript还不流行时,我们就可以直接使用submit按钮提交表单数据了。表单里面可以包含文字和文件。然后随着js和ajax的流行,可以利用ajax直接异步提交部分表单数据。这里开始我就纠结了,为什么ajax可以提交自己组装的数据。那为什么不能直接提交文件呢。这里我错了,ajax提交的并不是随意的数据,最后还是组装成了表单格式(因为后台技术对表单格式数据的支持比较普及)。 阅读详情

相关推荐

HTML5+CSS3【Form表单、表单、 HTML5新类型、HTML5新增属性】(三)-全面详解(学习总结---从入门到深化)

本阶段为基础阶段,主要学习HTML基本结构、骨架、标签和CSS基本样式。通过对这些标签的使用,熟悉布局的搭建结构。合理运行对应标签实现试图效果,是本阶段必须要掌握的知识,为接下来的学习奠定基础。

1148

HTML(最重要内容 表单(1))+file控件

表单是什么? 1.表单的作用是,接收用户的信息,点击提交按钮提交数据给服务器 2.怎么画一个表单? 使用form标签画表单 3.一个网页当中可以有多个表单 4.表单最终是需要提交数据给服务器的,form标签有个action属性,这个属性用来指定服务器地址: action属性用来指定数据提交给哪个服务器 action属性和超链接中的href属性一样,都可以向服务器发送请求(request) 5.重点...

wenshao007的博客 561

HTML5表单与画布绘图的探索

本文深入探讨了HTML5表单的创建和文件上传处理,以及如何使用JavaScript在HTML5文档中动态绘制图像。通过实例代码和详细说明,展示了表单元素的配置方法,以及画布元素的使用技巧,包括如何设置画布、绘制形状和文本,以及如何处理文件上传。

weixin_42593549的博客 398

HTML常用标签之表单form

表单在网页中主要负责数据采集功能。HTML中的标签,就是用于采集用户输入的信息,并且通过标签的提交操作,把采集到的信息提交到服务器端进行处理。

weixin_45604020的博客 1万+

第3章 HTML5表单及文件处理.ppt

第3章 HTML5表单及文件处理.ppt 供大家查阅!属于课件类型。

【嵌入式面经】上海 70迈 线上笔试

“关注|点赞|收藏” 福利干货第一时间送达!最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!

qq_56921854的博客 1138

前端 HTML form表单标签 input标签 type属性 file 上传文件

加上上传文件功能input type='file' - 依赖form表单里一个属性 enctype="multipart/form-data" 加上这个属性表示把你上次文件一点一点点上传还有form表单action指向提交的url后台,一定是用post请求提交 <!DOCTYPE html> <htm...

weixin_30672019的博客 1898

flowable表中文注释-表结构-主要表结构字段注释-sql脚本

flowable表结构中文注释,主要表结构字段注释,sql执行脚本,包含MySQL版和Oracle版sql脚本。

bushinakeshu的博客 1069

html表单的file,form表单的file文件上传那些事

file API客户端直接访问用户计算机的文件,2000以前,在表单添加了字段.file API是为給web开发提供安全的方式,以便在客户端更好访问用户的文件,字段的基础上加了一些直接访问文件信息的接口-files集合.与fileReader类型读取文件的数据.files集合name: 本地文件的名称size: 文件的字节大小type: 字符、文件的MIME类型lastModifiedDate: ...

weixin_36116008的博客 1603

ICC2:postmask ECO参考脚本

更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 883

可信启动方案设计

本博客简要解释了TF-A中的Measured-Boot可信启动设计实现。

AI-安全-功耗 1204

html表单_FILES,form表单中$_FILES数组的使用

//隐藏文件限制写入文件的大小然后upload.php中可以直接用$_FILES$_POST$_GET等函数获取表单内容。今天我们着重讲$_FILES函数。当客户端提交后,我们获得了一个$_FILES 数组$_FILES数组内容如下:$_FILES['myFile']['name'] 客户端文件的原名称。$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该...

weixin_42271195的博客 670

LVGL iPhone Duo 开合过渡

环境:LVGL 9.x(需要软件模糊),窗口建议 1280×800。界面文案英文(默认 Montserrat 无 CJK)。

摸鱼专家 149

html5上传表单数据,上传文件和表单数据 formdata怎么上传文件和数据

老毛桃还原c盘失败 错误代码3221225477抱去电脑店装机需要30-50元,虽然钱不多但是麻烦,不如用30-50元买个U盘自己装系统,知识也学了机器也装了,主要是方便了,而且自己又落个U盘,呵呵,何乐而不为。 以下是用U盘装机流程,自己看看,学会不CSS布局HTML小编今天和大家分享人,而且自己更方便。Java中上传文件和表单数据提交如何质莸//1.form表单 //注:上传文件的表单,需要将...

weixin_36260304的博客 631

在 SAP ABAP 生态中偏爱面向对象,而不是过程式堆叠

本文探讨了ABAP开发中过程式与面向对象编程的共存现状及优化方向。文章指出,虽然过程式编程在ABAP中仍广泛存在,但随着业务复杂度提升,面向对象编程在可维护性、可测试性和重构便利性方面展现出明显优势。作者建议将过程式代码作为"适配层",仅负责输入输出转换,而将核心业务逻辑封装在类中。文章通过实际案例展示了这种架构如何提高交付效率,并提供了将Function Module转化为"薄包装"的具体实现方案,强调面向对象设计在SAP Gateway和RAP等现代架构中的重要性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 136

基于STM32H5的循环GPDMA链表使用

STM32H503的GPDMA链表模式可实现灵活的数据传输。相比传统DMA直接编程方式,链表模式通过配置多个节点实现分散数据传输,支持循环链表功能。示例展示了如何使用GPDMA链表实现UART1循环发送数据:配置两个DMA节点分别指向不同发送缓冲区,构建循环链表并绑定到DMA通道。关键点包括:清空链表结构体、正确设置循环模式、检查节点配置。此方法提高了DMA使用的灵活性,适用于需要交替传输多段数据的场景。

kevin1499的博客 451

5、form表单提交、html跳转和引用文件配置

目录 在view.py文件中配置注册方法: 然后在html文件内,配置好静态样式文件的路径和跳转: 静态样式文件的配置语法: html文件内跳转的书写语法: form表单提交相关知识点: 在view.py文件中配置注册方法: class RegisterView(View): def get(self,request): return render(requ...

Oldlee ‘s Blog 1919

基于爬虫+词云图+Kmeans聚类+LDA主题分析+社会网络语义分析对大唐不夜城用户评论进行分析

本项目是基于携程网中关于大唐不夜城评论的文本分析,项目中用到了Python爬虫、词频分析、词云图分析、kmeans聚类、LDA主题分析、情感分析、社会网络语义分析等。本次实验我们使用了爬虫、词云图、情感分析、LDA主题分析、TF-IDF+Kmeans、社会网络语义分析等对大唐不夜城的评论进行了分析。关于博文中的源码大家可以关注派森小木屋公众号进入粉丝群领取,如对文章有疑惑,请评论区留言。

m0_64336780的博客 1万+

HTML5表单及文件处理

1、HTML4表单 表单是网页中的常用组件,用户可以通过表单向服务器提交数据。表单中可以包括标签(静态文本)、单行文本框、滚动文本框、复选框、单选按钮、下拉菜单(组合框)和按钮等控件。 1)定义表单 可以使用<form>...</form>标签定义表单。 表单的常用属性及说明 属性 具体描述 id 表单ID,用来标记一个表单 name ...

KWLShadow的博客 2310

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HTML5 _表单提交

html5的确是大势所趋 现在就来说下html 5 <!DOCTYPE html> 当你看到你的页面标头是这样 证明是h5咯 ,以往的页面开头总是很长 现在简单多了<meta charset="UTF-8">这个是编码格式咯 或者是别的 这时候就说说 吧<form action="提交地址" method="get/post" onsubmit="return checked

SWSHBON的博客 7093

深度学习工具包 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")

php表单和图片一起上传,php 文件和表单内容一起上传

$filename = $_POST['filename'];$explain = $_POST['explain'];$upfile = $_FILES['upfile'];if(is_uploaded_file($upfile['tmp_name']) && $upfile['size']>0){$filepath = './'.$upfile['name'];move...

weixin_28979345的博客 569

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

html选择文件提交表单前增加校验,HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法...

HTML中与form有关的东东新增属性个人理解formhtml5之前,表单内的从属元素需要放入标签中,现在可以为标签指定form标签即可点评:该功能解决了我们实际中遇到的一些问题,比如iframe模拟异步图片上传时,就必须将图片写到form外。formactionformmethod该属性用于按钮(submit)让表单提交页面可又按钮控制formmethod指定各按钮提交方式placehoder该...

weixin_39629780的博客 272

HTML5基础——5、表单

这次来看看网页里面经常出现的表单

阿赵的博客 1255

HTML5表单

一、HTML原有的表单  <form.../>元素用于生成输入表单,该元素不会生成可视化部分。  <form.../>除了基本属性外还可以定义如下属性:   action:当点击“确定”按钮的时候, 表单被提交的地址;   method:提交方式,属性值为POST或GET;   enctype:指定对表单内容进行编码所使用的字符集;   name:指...

weixin_30672019的博客 96

【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放

导航 【初探HTML5之使用新标签布局】用html5布局我的博客页! 【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面 【HTML5初探之绘制图像(下)】看我canvas元素引领下一代web页面 【HTML5初探之多媒体元素】视频播放HTML5、Flash谁才是王道? 【HTML5初探之本地

w549265480的专栏 662

html5 服务端处理表单,HTML5程序设计-HTML5表单及文件处理(111页)-原创力文档

HTML5基础教程(第2版)授课教师:职务:第3章 HTML5表单及文件处理课程描述应用程序的基本功能就是与用户进行交互,用户提交数据的最常用方式是通过表单。除了可以使用表单传送用户输入的数据,还可以用于上传文件。本章介绍HTML5表单的新特性和文件处理的方法。本章知识点p3.1 HTML4表单p3.2 HTML5表单的新特性p3.3 文件处理3.1 HTML4表单p 3.1.1 定义...

weixin_39866963的博客 237
上一篇: html5新增的结构元素
下一篇: 求公司电脑升级方案 求升级顺序 配置价格
lfpwhy
博客等级 码龄17年 6粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值