У меня есть два php-документа. form.php
и upload.php
. Form.php отображает кнопку моего загружаемого файла, и она видна для конечного пользователя. upload.php
выполняет действие и не отображается пользователю, но имеет include("form.php");
так что все, что я эхо на этой странице, возвращается на мою страницу form.php для отображения.
сначала я хочу знать, как проверить свой код загрузки с помощью оператора if, чтобы проверить, правильно ли загружен файл на сервер. мой код загрузки
код
move_uploaded_file($_FILES['file']['tmp_name'],"./medetrax_backup/{$_FILES['file']['name']}");.
во-вторых, если загрузка была успешной, я хочу, чтобы оператор if отображал "файл был загружен", иначе эхо "файл не был загружен".
наконец, поскольку эхо-сигналы отсылаются обратно к моему form.php, я хочу знать, как эхо-сообщение в конкретном div в моем form.php
. Вместо того, чтобы повторять его в нижней части страницы.
move_uploaded_file
возвращает true при успешном move_uploaded_file
. В upload.php;
<?php
....
$res = move_uploaded_file($_FILES['file']['tmp_name'],"./medetrax_backup/{$_FILES['file']['name']}");
$_SESSION["res"]=true;
if ($res) {
header("Location:form.php?res=success");
} else {
header("Location:form.php?res=error");
}
И в form.php;
<?php
.....
$res = $_GET["res"];
......
?>
<div>
<?php if ($res == "success" && !empty($_SESSION["res"])) {
echo "File uploaded";
} else {
echo "Error occured";
}
unset($_SESSION["res"]);
?>
</div>
.....
В upload.php используйте следующее:
<?php
....
try
{
$res = move_uploaded_file($_FILES['file']['tmp_name'],"./medetrax_backup/{$_FILES['file']['name']}");
}
catch(Exception $e)
{
echo "An exception occurred while uploading the file. Process will quit now";
die;
}
if (isset($res))
{
header("Location:form.php?res=success");
}
else
{
header("Location:form.php?res=error");
}
?>
И в form.php, проверьте, используя это:
<?php
.....
$res = isset($_GET["res"])?$_GET["res"]:false;
......
?>
<div>
<?php if ($res)
{
if($res=="success")
echo "File uploaded";
else
echo "Failed to upload file";
}
else
{
//draw your upload button here, in same file.
}
?>
</div>
.....