尝试制作:用户上传文件后,如果成功显示img(传递$filetype_accept
语句),
在.upload_img
中添加 attr id=1
,每次上传文件 ID 时增加 1 id=2, id=3..
。
仅当刷新页面时,才清除容器并重新计数。
我设置了标志$layer
来计算有多少img上传成功,但是在上传第二个img后,attr仍然id=1
。
下面是我的代码,有什么建议可以让它工作吗?
谢谢。
.php
$filename = $_FILES['file_upload_tmp']['name'];
$filetmp_name = $_FILES['file_upload_tmp']['tmp_name'];
$filetype = $_FILES['file_upload_tmp']['tmp_name'];
$filetype_accept = $filetype == 'image/jpg';
$layer = 0;
if($_FILES){
if($filetype_accept){
move_uploaded_file($filetmp_name, 'upload/tmp/'.$filename);
$layer = $layer + 1;
print"
<div class='"img_wp'">
<div class='"upload_img'" id='"$layer'">
<img src='"upload/tmp/$filename'">
</div>
</div>
";
return $layer;
}
else{
print"upload file error, plz upload file type: $filetype";
}
}
else{
print"
<div class='"upload'">
<form enctype='"multipart/form_data'">
<input type='"file'" name='"file_upload_tmp'">
<input type='"submit'" value='"upload'" class='"btn'">
</form>
</div>
<div class='"container'"></div>
";
}
.js
$('.btn').click(function(e){
e.preventDefault();
var uf = $('.upload form');
var fd = new FormData(uf[0]);
$.ajax({
type: "POST",
url: "upload.php",
data: fd,
processData: false,
contentType: false,
success: function(html){
var img = $(html).filter('.img_wp').html();
$('.container').append(img);
}
});
});
您需要
将数据发送到服务器fd.append('layer', $('.upload_img').attr('id'));
然后在服务器$layer = (int)$_POST['layer'];
上处理它。