图片上传

本文分享了网页上传图片的方法。首先要准备加载页面,设计img选择框,设置input标签type为file。通过FileReader接口获取并显示选择的图片,给出了从选择照片到显示图片的固定代码写法。最后强调上传到数据库的图片需匹配格式,要用正则表达式验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在做项目一般都要上传数据,但是有一些信息不单单是文字,字符,还有图片文件呢,涉及的信息包含图片,所以在这跟大家分享一个上传图片的方法。图片已经成为生活中不可或缺的东西。

我们要准备好相关的插件加载页面,没有页面,图片存在哪里呢?图片一般是放在页面的呢,最后再传入数据库的。

首先,设计img的选择框, 在input标签上type属性设置file。标签上也要嵌套一个方法,并把图片的ID传进来,因此系统才能获取的选择的图片。存放图片的页面样式可以根据自己喜好来设定。

页面的代码大致是这样:,div包裹一个img标签和一个input标签,img标签存放图片,input标签实现双击打开选择图片的效果.

这样就可以双击打开如下页面:
在这里插入图片描述

打开file表单,选择图片,要绑定input标签的ID,实现的代码如下。
function chooseImageFile(inputFileID) {$("#" + inputFileID).click();}

在这里插入图片描述
接下来呢?我们就是要上传图片了,图片上传关键步骤如下:
我们要把选择的图片显示在网友当中就要用到FileReader,这是一个接口,通过文件获取的接口来获取选择的图片并显示出来FileReader接口提供了一个异步的API,通过这个API可以从浏览器中异步访问文件系统中的数据。因此,FileReader接口可以读取文件中。的数据,并将读取的数据放入到内存中去。

下面1-7是固定写法,可以直接拷贝到项目里使用.
1:选择照片:用FileReader对象来读取本地数据,并且将数据结果赋值给image的src、当我双击选择图片打开,图片选择框里面的内容就发生了改变。因此就写了下面的function。

2:创建FileReader对象,new一个新的对象.
var imgReader = new FileReader();

3:写一条正则表达式 过滤图片文件,验证所有的图片格式,选择的图片要符合下面的要求,意思就是只能添加图片,其他文件无法上传
regexImageFilter=/^(?:image/bmp|image/cis\cod|image/gif|image/ief|image/jpeg|image/jpeg|image/jpeg|image/pipeg|image/png|image/svg+xml|image/tiff|image/x-cmu-raster|image/x-cmx|image/x-icon|image/x-portable-anymap|image/x-portable-bitmap|image/x-portable-graymap|image/x-portable-pixmap|image/x-rgb|image/x-xbitmap|image/x-xpixmap|image/x-xwindowdump)$/i;

4:file表单改变事件,将选择的图片显示到img元素
function showImgToView(inputFileId)

5:选择图片文件,可以通过get(0).files[0]获取到页面传过来的图片
var imgFile = $("#" + inputFileId).get(0).files[0];
console.log(imgFile);

6:判断上传文件是否为图片格式
if (!regexImageFilter.test(imgFile.type)) {
layer.msg(“请选择有效的图片文件”, { icon: 0, title: “提示” });
}

readAsDataURL()方法可以获取API异步读取的文件数据,另存为数据URL;FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL。Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件。相当于把图片的路径提前出来,有路径才可以保存图片.
imgReader.readAsDataURL(imgFile);

7:读取文件 onload事件,使用readAsDataURL就会触发接口的onload事件.
imgReader.onload = function (evt) {
console.log(evt);

8:将该URL绑定到img标签的src属性上,就可以实现图片的上传预览效果了。 $("#IsImgStudentPicture").attr(“src”, evt.target.result);
$("#UsImgStudentPicture").attr(“src”, evt.target.result);

把图片路径给result,这样就能达到图片显示在页面的效果.最后一步就是保存图片.
以上就是上传图片的基本方法.也很实用.还有,图片上传到数据库是以进制方式存放的,所有要存入数据库的图片都要匹配格式,只能是图片的格式,并且要是系统认定的格式,所以前面多次要用到正则表达式。然后系统会解析页面传过来的图片文件,只有符合条件才能通过,不然会被拦截下来。
图片上传也是很实用,易用的,这些功能及代码也不断地完善,大家要跟随时代的步伐,多学多做,不然就要被这个社会淘汰了。

基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值