由于前段时间的项目中 涉及到图纸的上传 前端大神很随意的扔给我一个页面 让我自己修修改改 找了好几个素材站都没有找到合适的上传插件 最后不得已 用formdata 写了一个 顺便记录下吧
html 代码
+添加图片 支持jpeg、jpg、gif、png等图片格式,单张图片最大不超过8M。
js 代码
$("#inputfile").change(function(){ //创建FormData对象 var data = new FormData(); //为FormData对象添加数据 $.each($('#inputfile')[0].files, function(i, file) { data.append('upload_file'+i, file); }); //发送数据 $.ajax({ url:'url', //地址自己写啊 type:'POST', data:data, cache: false, contentType: false, //不可缺参数 processData: false, //不可缺参数 success:function(data){ data = $(data).html(); //第一个feedback数据直接append,其他的用before第1个( .eq(0).before() )放至最前面。 //data.replace(/</g,'<').replace(/>/g,'>') 转换html标签,否则图片无法显示。 if($("#feedback").children('img').length == 0) $("#feedback").prepend(data.replace(/</g,'<').replace(/>/g,'>')); else $("#feedback").children('img').eq(0).before(data.replace(/</g,'<').replace(/>/g,'>')); $(".loading").hide(); //加载成功移除加载图片 }, error:function(err){// alert('上传出错');// $(".loading").show(); //加载失败移除加载图片 } }); });
php 代码
1 function img(){ 2 $db = $GLOBALS['db']; 3 $ecs = $GLOBALS['ecs']; 4 5 $dir_base = DATA_DIR . '/product_img/' . date('Ymd') . '/'; 6 if (!file_exists($dir_base)) { 7 if (!@mkdir($dir_base, 0755,true)) { 8 return false; 9 }10 }11 //没有成功上传文件,报错并退出。12 if(empty($_FILES)) {13 echo "";14 exit(0);15 }16 17 $output = "";67 }
由于本人比较懒,细节方面就不调了
验证方法附上
1 function checkImgExt(filename) 2 { 3 var flag = false; //状态 "jpg","png","jpeg","gif" 4 var arr = ["jpg","png","jpeg","gif"]; 5 //取出上传文件的扩展名 6 var index = filename.lastIndexOf("."); 7 var ext = filename.substr(index+1).toLowerCase( ); 8 //循环比较 9 for(var i=0;i