Я написал скрипт загрузки на своем сайте, где пользователи могут загружать заранее определенное количество элементов (12 в моем случае).Пользователь может редактировать свой проект (конечно ...).
Поэтому я также написал скрипт обновления.Проект считывается из базы данных, и пользователь может повторно загрузить или удалить определенные файлы.Но я знаю, что когда пользователь не загружает новый файл, исходный файл перезаписывается пустым значением (имеет смысл, поскольку <input>
пусто.
Но я хочу это предотвратить.Как мне это сделать?
Форма :
$activities = Project::getProjectById($_DB, $projectnumber);
if(!empty($activities)) {
foreach($activities as $k => $v) {
echo "<input type='text' value='".$v['name']."' name = 'newproject_name' />";
$i = 1;
while ($i <= 12) {
if(!empty($v["photo$i"])) {
echo "<img src='../files/".$v["photo$i"]."' width='200' height='200' />";
echo "<input type='file' name='images[]' />";
}
$i++;
}
}
echo "<input type=submit value='Update' name='submitted'>";
echo "</form>";
}
PHP :
$project = new Project();
$project->name = $_POST['newproject_name'];
$project->photo1 = $_FILES['images']['name'][0];
$project->photo2 = $_FILES['images']['name'][1];
$project->photo3 = $_FILES['images']['name'][2];
$project->photo4 = $_FILES['images']['name'][3];
$project->photo5 = $_FILES['images']['name'][4];
$project->photo6 = $_FILES['images']['name'][5];
$project->photo7 = $_FILES['images']['name'][6];
$project->photo8 = $_FILES['images']['name'][7];
$project->photo9 = $_FILES['images']['name'][8];
$project->photo10 = $_FILES['images']['name'][9];
$project->photo11 = $_FILES['images']['name'][10];
$project->photo12 = $_FILES['images']['name'][11];
if($project->updateProject($_DB, $projectnummer)) {
$feedback = "<div class='feedback good'>ok!!</div>";
} else {
$feedback = "<div class='feedback bad'>NOT ok!</div>";
}
Вы не делаетенадо беспокоиться о функциях getProjectById
и updateProject
, они работают просто отлично, но, как вы видите, скрипт загрузит все пустые значения и перезапишет их в базу данных ...
Я бы хотелпредотвратить это! Любой совет?
РЕДАКТИРОВАТЬ :
if (!empty($_FILES['images']['name'][0])) {
$project->photo1 = $_FILES['images']['name'][0];
}
if (!empty($_FILES['images']['name'][1])) {
$project->photo2 = $_FILES['images']['name'][1];
}
if (!empty($_FILES['images']['name'][2])) {
$project->photo3 = $_FILES['images']['name'][2];
}
if (!empty($_FILES['images']['name'][3])) {
$project->photo4 = $_FILES['images']['name'][3];
}
if (!empty($_FILES['images']['name'][4])) {
$project->photo5 = $_FILES['images']['name'][4];
}
if (!empty($_FILES['images']['name'][5])) {
$project->photo6 = $_FILES['images']['name'][5];
}
if (!empty($_FILES['images']['name'][6])) {
$project->photo7 = $_FILES['images']['name'][6];
}
if (!empty($_FILES['images']['name'][7])) {
$project->photo8 = $_FILES['images']['name'][7];
}
if (!empty($_FILES['images']['name'][8])) {
$project->photo9 = $_FILES['images']['name'][8];
}
if (!empty($_FILES['images']['name'][9])) {
$project->photo10 = $_FILES['images']['name'][9];
}
if (!empty($_FILES['images']['name'][10])) {
$project->photo11 = $_FILES['images']['name'][10];
}
if (!empty($_FILES['images']['name'][11])) {
$project->photo12 = $_FILES['images']['name'][11];
}