小妹疑问,在Javascript里扑获不到$_FILES <form action="" method="POST" onSubmit="return chk(this)" enctype="multipart/form-data"> 传送文件必须加后面那个 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这样能得到才怪呢.提交以后调用chk,而chk函数内部的语句都是在提交以前生成的.请理解一下何为PHP,何为javascript,何为html 那就是无法扑获了!是吗!必须post到另外一个php页面去判断了! 你要搞清楚服务器与客户端的概念先。<?$fileSize=0;$frelatfile=$_FILES['bao'];var_dump($frelatfile);if($frelatfile['name']!="") { $fileSize=$frelatfile['size'];}?>这些代码是在你服务器上面执行的用javascript当然检测不到的。给你一个js的<HTML> <HEAD> <SCRIPT> // JS 判断文件大小 function getFileSize (fileName) { if (document.all) { window.oldOnError = window.onerror; window.onerror = function (err) { if (err.indexOf( 'utomation ') != -1) { alert( '没有访问文件的权限 '); return true; } else return false; }; var fso = new ActiveXObject( 'Scripting.FileSystemObject '); var file = fso.GetFile(fileName); window.onerror = window.oldOnError; return file.Size; }} </SCRIPT> </HEAD> <BODY> <FORM NAME= "formName "> <INPUT TYPE= "file " NAME= "fileName "> <BR> <INPUT TYPE= "button " VALUE= "查看文件字节大小 " ONCLICK= "alert(getFileSize(this.form.fileName.value)) "> <BR> </FORM> </BODY> </HTML>一般不建议这样做,因为好多客户端的ie都限制了执行 ActiveXObject( 'Scripting.FileSystemObject ')的权限用ajax来做,或是直接在服务端去判断,然后给个提示信息。 当然要到另外一个页面了。JS是在客户端的。PHP在服务端的,这样套在一起用不行。 好多热心人哈.如果不想跳转页面,可以考虑生成一个隐藏的iframe来提交,呵呵.也可以直接利用一个jquery的ajaxupload插件来完成,不过前提是你得了解一点jquery.只是建议哈.我的blog里有篇关于ajaxupload的插件的一点小介绍. function chk(form) { <? $fileSize=0; $frelatfile=$_FILES['bao']; var_dump($frelatfile); if($frelatfile['name']!="") { $fileSize=$frelatfile['size']; } ?> alert(" <?=$fileSize?>"); } </script> 这一段在你运行页面的时候就已经生成了,不可能动态改变 请xuzuning来接收,感谢你的回答!顺便再请教一个小问题。 这个问题比较难,无级分类倒循环 下拉列表不显示的问题 请进,comet长连接性能,服务器性能测试 imagegif函数的问题 建立array時為什麼不能用變量代替內容? 类的成员变量问题?急等!! 1000分求解:一个网页打开的时候怎么使它右边的滚动条在最下面而不是最上面? plz help 关于广告轮播的问题? 某著名外资游戏公司招聘Senior Software Engineer(PHP/Web)高级软件工程师(PHP/Web) 想在项目开工前做点什么.又不知道做些什么好
提交以后调用chk,
而chk函数内部的语句都是在提交以前生成的.请理解一下何为PHP,何为javascript,何为html
<?
$fileSize=0;
$frelatfile=$_FILES['bao'];
var_dump($frelatfile);
if($frelatfile['name']!="")
{
$fileSize=$frelatfile['size'];
}
?>这些代码是在你服务器上面执行的用javascript当然检测不到的。给你一个js的
<HTML> <HEAD>
<SCRIPT>
// JS 判断文件大小
function getFileSize (fileName) {
if (document.all) {
window.oldOnError = window.onerror;
window.onerror = function (err) {
if (err.indexOf( 'utomation ') != -1) {
alert( '没有访问文件的权限 ');
return true;
}
else
return false;
};
var fso = new ActiveXObject( 'Scripting.FileSystemObject ');
var file = fso.GetFile(fileName);
window.onerror = window.oldOnError;
return file.Size; }}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME= "formName "> <INPUT TYPE= "file " NAME= "fileName "> <BR>
<INPUT TYPE= "button " VALUE= "查看文件字节大小 " ONCLICK= "alert(getFileSize(this.form.fileName.value)) "> <BR>
</FORM> </BODY>
</HTML>
一般不建议这样做,因为好多客户端的ie都限制了执行 ActiveXObject( 'Scripting.FileSystemObject ')的权限
用ajax来做,或是直接在服务端去判断,然后给个提示信息。
JS是在客户端的。
PHP在服务端的,这样套在一起用不行。
如果不想跳转页面,可以考虑生成一个隐藏的iframe来提交,呵呵.也可以直接利用一个jquery的ajaxupload插件来完成,不过前提是你得了解一点jquery.只是建议哈.
我的blog里有篇关于ajaxupload的插件的一点小介绍.
{
<?
$fileSize=0;
$frelatfile=$_FILES['bao'];
var_dump($frelatfile);
if($frelatfile['name']!="")
{
$fileSize=$frelatfile['size'];
}
?>
alert(" <?=$fileSize?>");
}
</script>
这一段在你运行页面的时候就已经生成了,不可能动态改变