用formData+ajax完成文件上传,PHP后台接收并做上传处理
一、HTML代码
<input type="file" name=img id='file'/>
<input type='text' name='code' id='code'>
<input type="button" onclick="submit()"/>
二、jquery代码
function submit(){
var formData=new formData();
formData.append('img',$('#file')[0].files[0])
formData.append("code",$("#code").val()),
$.ajax({
url:'load.php',
type:'post',
dataType:'text',
cache: false, //上传文件无需缓存
processData: false, //用于对data参数进行序列化处理 这里必须false
contentType: false, //必须
data:formData,
success:function(list){
console.log(list)
},
error:function(){
console.log("保存失败")
}
})
}
三、PHP代码
$files=$_FILES["img"];//文件详情
$data=$_POST;//其他文本框内容
if(!$files["error"]){//没有出错
//判断上传文件类型为png或jpg且大小不超过1024000B
if(($files["type"]=="image/png"||$files["type"]=="image/jpeg")&&$files["size"]<1024000){
//防止文件名重复
$filename ="templates/".time().$files["name"];
//检查文件或目录是否存在
if(!file_exists($filename))
{
$res=move_uploaded_file($files["tmp_name"],$filename);//将临时地址移动到指定地址
if($res){
$data['head_img']=$filename;//图片地址
}
}
}
}