【发布时间】:2013-01-24 06:35:43
【问题描述】:
我使用 2 个文件 index.js,upload.php 尝试通过 ajax 上传文件(img),如果成功附加到 div uploadfile_show。
但它不起作用,几乎没有问题,下面是我的代码有什么建议吗?
谢谢。
上传.php
1.form enctype还需要加吗?
2. if($_FILES) 并检查 $_FILES 大小或 tmp_name 是否仍然使用 $_FILES?
if($_FILES){
$filename = $_FILES['uploadfile']['name'];
$filetmp = $_FILES['uploadfile']['tmp_name'];
$filesize = $_FILES['uploadfile']['size'];
if($filesize < 1000000){
move_uploaded_file($filetmp,'upload/tmp/'.$filename);
print"
upload success
<img src=\"upload/tmp/$filename\">
";
}
else{
}
}
else{
print"
<div class=\"uploaddiv\">
<form enctype=\"multipart/form_data\">
<input type=\"type\" name=\"uploadfile\">
<input type=\"submit\" value=\"upload\" class=\"btn\">
</form>
</div>
";
}
print"
<div class=\"uploadfile_show\"></div>
";
index.js
3. 这几行是对的吗?var uf = $('.uploaddiv form');var fd = new FormData(uf);fd.append('uploadfile', uploadfile);data: fd,
4. 有什么我遗漏或错误的吗?
$('.btn').click(function(){
var uf = $('.uploaddiv form');
var fd = new FormData(uf);
fd.append('uploadfile', uploadfile);
$.ajax({
type: "POST",
url: "upload.php",
data: fd,
processData:false,
contentType: false,
success: function(html){
$('.uploadfile_show').append(html);
}
});
});
【问题讨论】:
-
FormData 仅适用于最近的浏览器 - developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData。你检查过你的浏览器版本吗?
-
@Sithu 是的,我的浏览器是 safari 5