上传图片

开发工具与关键技术:Visual Studio2015
作者:邹铭霞
撰写时间:2019年3月28日

读取图片文件接口
FileReader接口提供了一个异步的API,通过这个API可以从浏览器中异步访问文件系统中的数据。因此,FileReader接口可以读取文件中的数据,并将读取的数据放入到内存中去
选择照片:用FileReader对象来读取本地数据,并且将数据结果赋值给image和src
HttpPostedFileBase:将页面的图片传输到控制器中

Controllers代码:
    byte[] imgFile = null;//读取上传的图片
    //判断是否上传图片(判断图片的值&&判断图片的长度)
    if (fileAccessoriesImage != null && fileAccessoriesImage.ContentLength > 0)  {
	       //有上传图片 
	      imgFile = new byte[fileAccessoriesImage.ContentLength];//初始化为图片的长度
															     //读取该文件的图片
															     //将图片转化为流结束位置
															     //将读取为byte[],参数:byte[],读取开始位置,读取字节数
	      fileAccessoriesImage.InputStream.Read(imgFile, 0, fileAccessoriesImage.ContentLength);
      }
View代码:
	//FileReader:接口用于读取文件
    var imgReaderI = new FileReader();
    //图片文件用正则表达式过滤(此表达式是用来确保上传的文件是一张图片)
    regexImageFilter = /^(?:image\/bmp|image\/png|image\/jpeg|image\/jpg)$/i;
    //调用FileReader接口的onload方法,回调函数得到的evt是图片的URL链接
    imgReaderI.onload = function (evt) {
	    //将结果赋值给image的src
	    $("#FittingsPicture").attr('src', evt.target.result);
     }
    //获取选择文件的按钮,调用改变事件
    $("#IStudentPicture").change(function () {
	    //获取通过”选择文件”的按钮上传的文件
	    //prop添加属性名称(跟attr属性一样是给标签添加属性,但是它们是有区别的),加载image标签中
    	var imgfFile = $("#IStudentPicture").prop('files')[0];
	    //调用正则表达式过滤图片
	    if (!regexImageFilter.test(imgfFile.type)) {
	      	 layer.msg('选择的不是一个有效的图片文件', { icon: 0 });
	      }//readAsDataURL()方法可以获取API异步读取的文件数据,另存为数据URL;将该URL绑定到img标签的src属性上,就可以实现图片的上传预览效果了
          imgReaderI.readAsDataURL(imgfFile);
      })

效果截图:
点击图1中的选择文件按钮,就会弹出文件选择框
在这里插入图片描述
(图1)
选择相对应的图片并确定
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值