Heim >Backend-Entwicklung >PHP-Tutorial >ajaxfileupload上传文件没反应
function ajaxFileUpload(){ $.ajaxFileUpload ({ url:'upfile.php', secureuri:false, fileElementId:'pic', dataType: 'json', success : function (data, status){ if(typeof(data.error) != 'undefined'){ if(data.error != ''){ alert(data.error); }else{ alert(data.msg); } } }, error: function(data, status, e){ alert(e); } }) return false; }
<A class=btn_addPic><SPAN><EM>+</EM>添加图片</SPAN> <INPUT class=filePrew type=file size=3 name='pic' id='pic'></A><input type='button' value='上传' class='upbt' onclick='return ajaxFileUpload();' >
$upFilePath = "../userUploadDatas/" . $_SESSION ["userId"] . "/";$res ["error"] = ""; // 错误信息$res ["msg"] = "exec"; // 提示信息if (copy ( $_FILES ['pic'] ['tmp_name'], $upFilePath . $_FILES ['pic'] ['name'] )) { $res ["msg"] = "ok";} else { $res ["error"] = "error";}echo json_encode ( $res );
有哪位老大给指点一下锕
确认你的 js 部分与样例文件没有大的出入
先检查文件确实非上传了
exit(json_encode($_FILES));
是不是js脚本有报错啊,你在firebug控制台下看有不有报错。
我就是在FF下测试的。
没有任何提示错误, 这让我很为难。
获取不到文件,怎么回事。
完全代码:
上传文件表单upfileForm.php
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=gbk"><link href="../css/manager.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="../js/jquery.js"></script><script src="../js/ajaxfileupload.js" type="text/javascript"></script><script type="text/javascript" src="../js/jrosion.js"></script> <script type="text/javascript"> $(document).ready(function(){ }); function upload(){ $.ajaxFileUpload({ url: 'upfile.php', //用于文件上传的服务器端请求地址 secureuri: false, //是否需要安全协议,一般设置为false fileElementId: 'fileToUpload', //文件上传域的ID dataType: 'json', //返回值类型 一般设置为json success: function (data, status) //服务器成功响应处理函数 { alert(data.msg); //$("#img1").attr("src", data.imgurl); if (typeof (data.error) != 'undefined') { if (data.error != '') { alert(data.error); } else { alert(data.msg); } }else{ alert("upload file failure!"); } }, error: function (data, status, e)//服务器响应失败处理函数 { alert(e); } }); return true; } </script><title>网站栏目管理</title></head><body><!-- <form action="upfile.php" method="post" enctype="multipart/form-data"> --> <input type="file" id="fileToUpload" size="40" name="fileToUpload"> <button type="button" id="buttonUpload" onclick="return upload();">上传</button><!-- </form>--></body></html>
<?phpheader("Content-type: text/html; charset=utf-8");$upFilePath = "../userUploadDatas/". $_SESSION ["userId"]."/";$res ["error"] = ""; // 错误信息$res ["msg"] = ""; // 提示信息if (@move_uploaded_file(@$_FILES ["fileToUpload"] ["tmp_name"], $upFilePath .@$_FILES ["fileToUpload"] ["name"])) { $res ["msg"] = "ok";} else { $res ["error"] = "error";}echo json_encode ( $res );
<form action="upfile.php" method="post" enctype="multipart/form-data"> --> <input type="file" id="fileToUpload" size="40" name="fileToUpload"> <button type="button" id="buttonUpload" onclick="return upload();">上传</button></form>文件是可以上传的,我就不清楚了,我上面的代码怎么写才能AJAX上传文件,郁闷几天了,,不知道原因。。
先去掉
<script></script>
看看,可能有冲突
老大,已将jrosion.js去掉,效果一样。。
你在 upfile.php 中只写
<?phpecho '{"msg":"hello"}';试试
我受不了, 下载了一个错误的ajaxfileupload.js文件, 最后在CSDN下载了一个,没有问题, 我郁闷的不行,好像是在官网下载的。。。。