尝试制作:用户上传文件后,如果成功显示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'];
上处理它。