0

我希望 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();">    
4

2 回答 2

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 根本不知道提交时要查找什么。

于 2013-01-13T00:37:33.160 回答
1

move_uploaded_file()正在将上传的文件从apache的临时目录复制到用户目录,所以当你提交文件时,在php端可以开始处理该文件之前它已经上传到临时目录。

因此,我建议您使用客户端 (javascript) 表单验证,或对 AJAX 文件上传和/或表单验证进行研究。PHP 是一种服务器端语言,在页面加载之前运行。不在页面内。(除非它是来自客户端的 AJAX 调用。)

于 2013-01-13T00:46:14.907 回答