尝试制作:
用户上传文件后如果成功显示img(传递$filetype_accept
语句),
在id=1
中添加at .upload_img
,每次上传文件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);
}
});
});
答案 0 :(得分:1)
您将数据发送到服务器fd.append('layer', $('.upload_img').attr('id'));
,然后在服务器$layer = (int)$_POST['layer'];
上处理。