我的表单上传了一个文件,该文件将添加到使用PHPMailer创建的邮件中。
不幸的是,邮件没有被发送,我想这可能是因为它的执行过早发送。所以我想要做的是添加一个小循环以有效地暂停进一步执行,直到文件上传:
while (!move_uploaded_file($_FILES['upload'][$first_name.' CV'], $target_path))
{
sleep(1);
if (move_uploaded_file($_FILES['upload'][$first_name.' CV'], $target_path))
{
echo "The file ". basename( $_FILES['upload'][$first_name.' CV'])." has been uploaded";
}
else
{
echo "There was an error uploading the file, please try again!";
}
}
这是我提出的,但我不确定它在这里做了什么。
请为我澄清以下内容:
!move_uploaded_file...
声明在循环开始时上传文件吗?move_uploaded_file...
语句中的if
声明是否也在上传文件,或者只是检查文件是否已上传?提前致谢!
答案 0 :(得分:0)
在文件上传完成之前,PHP脚本不会执行。你正试图解决错误的问题。
Web服务器处理请求,包括处理和等待上载的文件数据。只有在Web服务器收到完整请求后,它才会调用您的PHP脚本。 (也就是说,除非你使用了一些不寻常的网络服务器。)$_FILES
中的任何内容都保证在 现在 。
答案 1 :(得分:0)
代码:
if (move_uploaded_file($_FILES['upload'][$first_name.' CV'], $target_path))
{
echo "The file ". basename( $_FILES['upload'][$first_name.' CV'])." has been uploaded";
}
else
{
echo "There was an error uploading the file, please try again!";
}