html上传图片并显示,html 图片上传

  html上传图片并显示,html 图片上传

  利用html5的新特性异步上传文件非常简单方便。本文主要展示JS部分和HTML结构。下面的代码没有使用第三个源代码库。如果有参考的话,请注意一些没有展示的代码片段。我这边效果预览:

  1.该文件未被选中。2.文件被选中。

  HTML代码部分:

  思路:在下面的代码中,我使用css的z-index属性来隐藏id=btnSelect元素下的input=file 标签。触发点击A标签后,弹出文件选择框。下面的masklayer用于点击确认按钮后的弹出层,防止用户重复点击确认按钮。复制代码如下:

  div id=wp class=warpper

  A id=btnSelect 单击以选择要上载的照片/a

  输入id= upload file type= file name= my photo /

  按钮ID= BTN确认 class= BTN 确认上传/按钮

  /div

  div id= mask layer class= mask-layer style= display:none;

  p图片正在上传./p

  /div

  JS图像文件验证部分:

  验证部分包括三个部分:大小、是否被选中、文件类型。第一个createObject方法是创建本地图片文件的预览路径,依次验证是否为空、文件类型和文件大小。不符合条件的,退回。

  真,满足以上三个条件后,在dom中生成图片预览,添加img元素,然后使用createObjectURL()方法获取预览路径。

  代码:复制代码。代码如下:

  //获取数据的URL地址

  函数createObjectURL(blob) {

  如果(窗口。URL) {

  返回窗口。URL . createobjecturl(blob);

  } else if (window.webkitURL) {

  返回window . webkiturl . createobjecturl(blob);

  }否则{

  返回null

  }

  }

  //文件检测

  函数checkFile() {

  //获取文件

  var file=$$(uploadFile )。文件[0];

  //判断文件为空

  if(file===null file===undefined){

  Alert(请选择您要上传的文件!);

  $$(btnSelect )。innerHTML=单击选择要上传的照片;

  返回false

  }

  //检测文件类型

  if(file . type . index of( image )===-1){

  Alert(请选择一个图片文件!);

  返回false

  }

  //计算文件大小

  var size=math . floor(file . size/1024);

  如果(尺寸5000) {

  Alert(上传的文件不得超过5M!);

  返回false

  };

  //添加预览图片

  $$(btnSelect )。innerHTML= img class=\ photo \ src=\ createObjectURL(file) \ /;

  };

  Ajax请求部分:

  注意:第一个监控文件选择了变更事件,在满足验证条件后,将执行预览。第二个监视器是监视点击btnSelect时弹出窗口的响应,后面的监视器是确认上传按钮并开始发送Ajax请求。这里的createXHR()方法是创建一个XMLHttpRequest对象。我还没有发布代码,包括addEventListener()方法。这两部分可以参考其他文章。复制代码如下:

  复制代码

  //侦听图片URL地址的更改

  addevent listener($ $( uploadFile ), change ,function() {

  check file();

  });

  //听点击文件选择按钮

  addEventListener($$(btnSelect ), click ,function() {

  //弹出文件选择框

  $$(uploadFile )。单击();

  });

  //监控上传确认按钮的click事件。

  addevent listener($ $( BTN config ), click ,function(e) {

  if (checkFile()) {

  尝试{

  //执行上传操作var xhr=create xhr();

  $ $( mask layer ). style . display= block ;

  xhr.open(post ,/uploadPhoto.action ,true);

  xhr . setrequestheader( X-Requested-With , XMLHttpRequest );

  xhr . onreadystatechange=function(){

  if (xhr.readyState==4) {

  var flag=xhr.responseText

  if (flag==success) {

  Alert(图像上传成功!);

  }否则{

  Alert(图像上传成功!);

  };

  $ $( mask layer ). style . display= none ;

  };

  };

  //表单数据

  var FD=new FormData();

  fd.append(myPhoto ,$$(uploadFile )。文件[0]);

  //执行发送

  xhr . send(FD);

  } catch (e) {

  console . log(e);

  }

  }

  });

  以上都是主要代码部分。如果你有任何问题,请联系我。欢迎交流。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: