ajax上传图片类型,ajax上传文件,判断上传图片类型,php上传图片
2016-11-21 17:09
726 查看
提交表单时候经常会遇到使用ajax,而且表单中会含有图片,文件等等。这时候可以选择使用FormData()来协助完成。
以下是html代码,是一个id=‘submitCompanyInfo’的form,type=‘file’的input,type=‘button’的按钮
<form id="submitCompanyInfo" enctype="multipart/form-data" method="post">
<div class="upload-btn">
<input type="file" id="cardLogo-btn" name="fileLogo" onchange="javascript:setImagePreview('Logo');">
<label for="cardLogo-btn">上传LOGO</label>
</div>
<div class="input-box">
<input type="button" style="border:0" class="btn submitCompanyBtn" value="保存">
</div>
</form>
以下是js代码,FormData()内部是form表单的id。
php代码比较简陋,自己写记得要写严密。
以下是html代码,是一个id=‘submitCompanyInfo’的form,type=‘file’的input,type=‘button’的按钮
<form id="submitCompanyInfo" enctype="multipart/form-data" method="post">
<div class="upload-btn">
<input type="file" id="cardLogo-btn" name="fileLogo" onchange="javascript:setImagePreview('Logo');">
<label for="cardLogo-btn">上传LOGO</label>
</div>
<div class="input-box">
<input type="button" style="border:0" class="btn submitCompanyBtn" value="保存">
</div>
</form>
以下是js代码,FormData()内部是form表单的id。
var formdata = new FormData($('#submitCompanyInfo')[0]); $.ajax({ url:'URL地址', data:formdata, type:"POST", dataType:"json", processData: false, contentType: false, success: function (da) { console.log(da); } });
php代码比较简陋,自己写记得要写严密。
//获取ajax传递过来的图片信息,并执行图片判断和上传操作 public function upload(){ if(!empty($_FILES['fileLogo']['name'])){ $res = $this->uploadImages("fileLogo"); if($res['code'] == 1){ $memberInfo[0]['images'] = $res['data']; }else{ echo json_encode($res);exit; } } } //上传图片判断上传类型和大小 返回数据格式是json。 function uploadImages($files){ if($_FILES[$files]['error'] !== 0){ switch($_FILES[$files]['error']){ case 1: case 2: $message = "上传文件超出限制"; break; case 3: $message = "文件上传出错"; break; case 4: $message = "上传图片不能为空"; break; case 6: $message = "找不到临时文件夹"; break; case 7: $message = "文件写入失败"; break; default: $message = "未知错误"; break; } return array("code" => -1, "message" => $message);exit; }else if($_FILES[$files]['size'] > 2*1024*1024){ //此处更改图片大小限制 return array("code" => -1, "message" => "上传图片不超过2M");exit; }else{ $types = ".jpg|.jpeg|.png"; //此处判断图片类型 $info = getimagesize($_FILES[$files]['tmp_name']); $ext = image_type_to_extension($info['2']); if(false === strpos($types, $ext)){ return array("code" => -2, "message" => '图片类型错误');exit; } //下面是文件命名,和图片存放地址处理 $mdStr = time().rand(100,999); $md5Path = md5($mdStr); $secondPath = substr($md5Path,0,2); $path = '/imagePath/'.$secondPath.'/'; if(!is_dir($path)){ mkdir($path); } $filename = $md5Path.'.'.get_extension($_FILES[$files]['name']); $fullpath = $path.$filename; if(move_uploaded_file($_FILES[$files]['tmp_name'],$fullpath)){ //移动文件到对应目录下 $imgPath = $path.$filename; return array("code" => 1, "message" => '成功','data'=>$imgPath);exit; }else{ return array("code" => -3, "message" => '目录写入失败');exit; } } }
相关文章推荐
- php判断上传的文件是否是图片类型
- 【转】PHP上传文件类型彻底判断方案及PHP+nginx上传大小彻底控制方案
- PHP根据文件头信息准确判断上传的文件类型
- php 判断上传文件类型 $_files[]['type']值大全
- php 判断文件上传类型与过滤不安全数据
- php文件上传判断类型创建多级文件夹
- PHP+jquery+ajaxupload 无刷新上传文件或图片
- php判断文件上传类型及过滤不安全数据的方法
- php上传文件类型判断
- 最近写的一个Php上传类,可以读取文件头部判断文件真实类型
- iframe+ajaxSubmit结合--续篇(判断图片(文件)大小,上传图片,验证码刷新)
- php 上传文件类型判断函数(避免上传漏洞 )
- 在作图片上传时判断文件是否是较长片类型 检测到是否是改后缀名图片(二)
- php 判断图片文件的真实类型
- php中检测上传文件类型与上传图片大小代码
- php判断上传的Excel文件中是否有图片及PHPExcel库认识
- php 判断上传文件类型 $_files[]['type']值大全
- php里的unpack函数判断上传文件的类型
- php 上传图片文件类型整理
- php判断文件上传类型及过滤不安全数据的方法