2015-03-16 6 views
1

Я создал форму редактирования следующим образом. Я хочу отредактировать загруженный файл, и он должен быть обновлен в mysql db. При вставке файла записи загружается в db, но при редактировании записи его не загружается в db. Оставшиеся поля обновляются, но загрузка файлов не происходит.Загрузка файла PHP по форме обновления

Может ли кто-нибудь помочь мне решить эту проблему?

Заранее спасибо.

edit.php

<?php 
// include db connection. 
    include 'dbconn.php'; 
    // If the form was submitted/posted, update the record. 
    if($_POST) 
{ 
    $path = ''; 
    $folder = "Folder/"; 
if (is_uploaded_file($_FILES['filename']['tmp_name'])) 
{ 
if (move_uploaded_file($_FILES['filename']['tmp_name'], $folder.$_FILES['filename']['name'])) 
    { 
    $path = $folder . $_FILES['filename']['name']; 
    } 
    else 
    { 
    $path = ''; 
    }; 
} 
else 
{ 
    $path = ''; 
}; 

     // write query. 
     $sql = "UPDATE main SET category = ?, sd = ?, fd = ?, assignto = ?, reviewed = ?, upload = ? WHERE srn = ?"; 
     $stmt = $mysqli->prepare($sql); 
     // Binding params. 
     $stmt->bind_param('sssssbi',$_POST['category'],$_POST['sd'],$_POST['fd'],$_POST['assignto'],$_POST['reviewed'],$_POST['path'],$_POST['srn']); 
     // Execute the update statement. 
     if($stmt->execute()) 
     { ?> 
     <script language="javascript"> 
     alert("Task updated successfully"); 
     top.location.href = "view.php"; // Page redirection. 
     </script> 
      // Close the prepared statement. 
     <?php $stmt->close(); 
} 
     else 
     { 
    die("Unable to update the task...."); 
     } 
    } 
$sql = "SELECT srn, client, type, fy, category, sd, fd, assignto, edoc, reviewed, upload FROM main WHERE srn = \"" . $mysqli->real_escape_string($_GET['srn']) . "\" LIMIT 0,1"; 
// Execute the sql query. 
$result = $mysqli->query($sql); 
// Get the result. 
$row = $result->fetch_assoc(); 
// php's extract() makes $row['client'] to $client automatically. 
extract($row); 
// Disconnect from db. 
$result->free(); 
$mysqli->close(); 
?> 
<form action="Edit.php?srn=<?php echo $srn; ?>" method="POST" enctype="multipart/form-data" novalidate> 
      <span>File upload</span> 
<input type="hidden"name="MAX_FILE_SIZE" value="2000"> 
     <input name ="filename" type="file"/> 

<button id='send' type='submit'>Update</button> 
</form> 

dbconn.php

<?php 
// Set connection variables. 
$host = "localhost"; 
$user = "root"; 
$pwd = "root"; 
$db = "eservice"; 
// Connect to mysql server 
$mysqli = new mysqli($host,$user,$pwd,$db); 
/* Check if any error occured */ 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to mysql : " . mysqli_connect_error(); 
    exit; 
} 
?> 
+0

добавляет правильную работу. Значения во время добавления файлов данных загружаются или нет? –

+0

При операции добавления работает правильно. – Kiran

+0

Каков размер и тип файла? попробуйте файл размером менее 2 МБ. – Kamran

ответ

0

Переместить код загрузки файла идти внутри блока кода, если ($ _ POST).

Вы не проверяете, существует ли массив $ _FILES, прежде чем запускать на нем какой-либо код.

+0

Теперь это сообщение не придет, но все же его не вставляет в db. Примечание: Неопределенный индекс: имя файла в if (is_uploaded_file ($ _ FILES ['filename'] ['tmp_name'])) – Kiran

Смежные вопросы