HTML:
<input type=”file” id=”changeImg” value=” 更換圖片 ” style=”position:absolute;left:0px;top:0px;opacity:0;display:block;width:100%;height:100%;” name=”pic”>
ajax:
$(“#changeImg”).change(function () {
var data = new FormData();
// 为 FormData 对象添加数据
$.each($('#changeImg')[0].files, function(i, file) {data.append('upload_file'+i, file);
});
console.log(data);
//$(".loading").show(); // 显示加载图片
// 发送数据
$.ajax({
url:url,
type:'POST', /* 提交方式 */
data:data,
cache: false,
contentType: false, /* 不可缺 */
processData: false, /* 不可缺 */
success:function(data){//data = $(data).html(); /* 转格式 */
$(".img2").attr("src",data);
console.log(data);
console.log(1);
},
error:function(){alert('上传出错');
}
});
})
PHP:
<?php
header(‘content-type:text/html charset:utf-8’);
$dir_base = $_SERVER[‘DOCUMENT_ROOT’]; // 文件上传根目录
// 没有成功上传文件,报错并退出。
$output = “<textarea>”;
$index = 0; //$_FILES 以文件 name 为数组下标,不适用 foreach($_FILES as $index=>$file)
foreach($_FILES as $file){
$upload_file_name = 'upload_file' . $index; // 对应 index.html FomData 中的文件命名
$filename = $_FILES[$upload_file_name]['name'];
$gb_filename = md5(time().rand(1,9999)); // 名字转换成 gb2312 处理
// 文件不存在才上传
if(!file_exists($dir_base.$gb_filename)) {
$isMoved = false; // 默认上传失败
$isMoved = @move_uploaded_file ($_FILES[$upload_file_name]['tmp_name'], $dir_base.$gb_filename.$filename);
/*$MAXIMUM_FILESIZE = 1 * 1024 * 1024; // 文件大小限制 1M = 1 * 1024 * 1024 B;
$rEFileTypes = "/^\.(jpg|jpeg|gif|png){1}$/i";
if ($_FILES[$upload_file_name]['size'] <= $MAXIMUM_FILESIZE &&
preg_match($rEFileTypes, strrchr($gb_filename, '.'))) {$isMoved = @move_uploaded_file ( $_FILES[$upload_file_name]['tmp_name'], $dir_base.$gb_filename); // 上传文件
}*/
}else{$isMoved = true; // 已存在文件设置为上传成功}
if($isMoved){
// 输出图片文件 <img> 标签
// 注:在一些系统 src 可能需要 urlencode 处理,发现图片无法显示,// 请尝试 urlencode($gb_filename) 或 urlencode($filename),不行请查看 HTML 中显示的 src 并酌情解决。$output .= "<img src='{$dir_base}{$filename}'title='{$filename}'alt='{$filename}'/>";
}else {
// 上传失败则把 error.jpg 传回给前端
$output .= "<img src='{$dir_base}error.jpg'title='{$filename}'alt='{$filename}'/>";
}
$index++;
}
echo $gb_filename.$filename;exit;