zoukankan      html  css  js  c++  java
  • HTML5预览图片、异步上传文件

    注意啦:本文的代码都是以JQuery为示例,jq_开头的变量都是jq对象。

    在HTML5中,我们可以在图片上传之前对图片进行预览,就像下面这么做

    1 jq_upload_file.change(function(){
    2 jq_img.attr("src",window.URL.createObjectURL(this.files.item(0)));
    3 jq_div.css("backgroundImage","url("+window.URL.createObjectURL(this.files.item(0))+")");
    4 });//end change

    那么异步上传文件,就只需要利用HTML5中的FormData,也就是这样:

     1 $.extend({
     2 AjaxUploadFile:function(url,formData,success,failure){
     3 var oReq = new XMLHttpRequest();
     4 oReq.open( "POST", url , true );
     5 oReq.onload = function(oEvent) {
     6 if (oReq.status == 200)
     7 {
     8 if(typeof success=="function") success(oReq);
     9 }
    10 else
    11 {
    12 if(typeof failure=="function") failure(oReg);
    13 }
    14 };
    15 oReq.send(formData);
    16 }
    17 });


    调用:

     1 var form=new FormData();
     2 form.append("pic",jq_upload_file.get(0).files[0]);
     3 //关于这里,其他文章有提到,可以直接传个DOM节点进去,即form.append("pic",jq_upload_file.get(0))
     4 //另外,对于FormData可以将整个表单form的节点传入,形成一个完整的FormData,即var form=new FormData(jq_form.get(0))
     5 $.AjaxUploadFile(
     6 "上传的URL",
     7 form,
     8 function(oReq){
     9 //处理oReq.responseText
    10 }
    11 );

    当然,上传之前,可能需要先验证一下文件大小、类型等等:

     1 $.extend({
     2 CheckUploadFile:function(jq_input_file){
     3 if(jq_input_file.get(0).files.item(0).size>300*1024)
     4 {
     5 return "文件大于300KB,无法上传";
     6 }
     7 var allow_pic=["jpg","jpeg","png","gif"];
     8 var flag=false;
     9 for(var i in allow_pic)
    10 {
    11 if(jq_input_file.get(0).files.item(0).type.indexOf(allow_pic[i])!=-1)
    12 {
    13 flag=true;
    14 break;
    15 }
    16 }
    17 return flag?"":"指定的文件格式无法上传";
    18 }
    19 });
  • 相关阅读:
    11月12号实验课
    10月29日实验
    10.15实验课作业
    Idea的使用和设置
    常用的Linux命令
    KAFKA总结
    SpringBoot+Maven+MyBaties+Mysql快速搭建一个项目
    Spring 常见面试
    Windows下安装ZK kafka Mysql dubbo redis
    MySQL常见的面试题
  • 原文地址:https://www.cnblogs.com/ddcoder/p/4982971.html
Copyright © 2011-2022 走看看