使用FormData,进行Ajax请求并上传文件;具体代码如下:
html代码:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script type="text/javascript" src="./jquery-1.11.0.min.js" ></script> <title>测试</title></head><body> <button id="uploadAll">上传</button> <br><br><form id= "uploadForm"> <input type="file" name="uploadData" style="display:none" id="uploadimg" onchange="uploadFile()" /> <br> <input type="hidden" name="data-id" style="display:none" id="offerid" value="" /> <br></form> </body></html>
js代码:
<script> $("#uploadAll").on("click", function(){ // alert("上传"); $("#uploadimg").click(); }); function uploadFile() { var formData = new FormData($( "#uploadForm" )[0]); $.ajax({ url: "./uploadAll.php", type: ‘POST‘, data: formData, async: false, cache: false, contentType: false, processData: false, success: function (returndata) { // alert(returndata); return false; if ( returndata=="上传成功!") { alert("上传成功!");return true; }; alert(returndata);return false; }, error: function (returndata) { alert(returndata); } }); } </script>
php代码:
<?php
// 获取上传文件的信息
// print_r($_FILES["uploadData"]);die();
if(is_uploaded_file($_FILES[‘uploadData‘][‘tmp_name‘])){
$upFile = $_FILES["uploadData"]; // 获取数组里面的值
$name = $upFile["name"]; // 上传文件的文件名
$type = $upFile["type"]; // 上传文件的类型
$size = $upFile["size"]; // 上传文件的大小
$tmp_name = $upFile["tmp_name"]; // 上传文件的临时存放路径
//判断是否为图片
switch ($type){
case ‘image/pjpeg‘: $okType=true;break;
case ‘image/jpeg‘: $okType=true;break;
case ‘image/gif‘: $okType=true;break;
case ‘image/png‘: $okType=true;break;
}
if($okType){
/**
* 0:文件上传成功<br/>
* 1:超过了文件大小,在php.ini文件中设置<br/>
* 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/>
* 3:文件只有部分被上传<br/>
* 4:没有文件被上传<br/>
* 5:上传文件大小为0
*/
$error=$upFile["error"];// 上传后系统返回的值
//把上传的临时文件移动到upload目录下面
move_uploaded_file( $tmp_name,"./upload/".$name );
if($error==0){
echo "上传成功!";
}elseif ($error==1){
echo "超过了文件大小,在php.ini文件中设置";
}elseif ($error==2){
echo "超过了文件的大小MAX_FILE_SIZE选项指定的值";
}elseif ($error==3){
echo "文件只有部分被上传";
}elseif ($error==4){
echo "没有文件被上传";
}else{
echo "上传文件大小为0";
}
}else{
echo "请上传jpg,gif,png等格式的图片!";
}
}else{
echo "您没有上传任何东西!";
}
?>