我希望start_uploading函数仅在满足所有条件并且文件正在上传时启动,现在正在加载'在提交表单时,会弹出一段时间,但它不符合上传的所有条件。
if(condtion){// don't start function} else
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) {
//now start function} else echo "error";
的javascript
function start_Uploading(){
document.getElementById('message').innerHTML = 'Loading... <br> Please Wait';
return true;
}
和html
<form action="something.php" method="POST" enctype="multipart/form-data"
onsubmit="start_Uploading();">
答案 0 :(得分:2)
由于您在php中检查条件是否为真,所以如果条件满足,我只会回显出js方法名称。
像这样:
<?php
if(true) $onsubmit = "start_Uploading();"; // Put actual condition in parantheses
else $onsubmit = "";
?>
然后以你的形式:
<form action="something.php" method="POST" enctype="multipart/form-data"
onsubmit="<?php echo $onsubmit; ?>">
如果不符合条件,则不会提供方法名称,并且js根本不知道在提交时要查找的内容。
答案 1 :(得分:1)
move_uploaded_file()
正在将上传的文件从apache的临时目录复制到用户目录,所以当你提交文件时,它会在php端开始处理该文件之前上传到临时目录。
因此,我建议您使用客户端(javascript)表单验证,或者对AJAX文件上传和/或表单验证进行研究。 PHP是一种服务器端语言,在页面加载之前运行。不在页面内。 (除非是来自客户的AJAX调用。)