0
我在這裏有更新圖像的代碼,當我選擇圖像時,更新工作正常。但是,當我嘗試做一些更新而不更改圖像時,它已成功更新。當我查看我的數據庫時,該字段爲空。每當我嘗試更新它,只是保留圖像,它只是保存一個空的字段。當我嘗試更新並選擇一個圖像來更改數據庫中的當前圖像時,它工作正常。我不知道它有什麼問題,沒有錯誤。有人可以幫助我嗎?更新時「空白字段」,如果沒有選擇圖像不更新數據庫?
user.class.php
public function upload($id,$FILE_NAME,$FILE_SIZE,$FILE_TYPE)
{
$stmt = $this->db->prepare("UPDATE tish_images SET FILE_NAME=:FILE_NAME,FILE_SIZE=:FILE_SIZE,FILE_TYPE=:FILE_TYPE WHERE id=:id");
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $error)
{
if ($error != UPLOAD_ERR_OK)
{
$errors[] = $_FILES['files']['name'][$key] . ' was not uploaded.';
return FALSE;
}
$file_name = $key.$_FILES['files']['name'][$key];
$file_size = $_FILES['files']['size'][$key];
$file_tmp = $_FILES['files']['tmp_name'][$key];
$file_type = $_FILES['files']['type'][$key];
if($file_size > 2097152)
{
$errors[] = 'File size must be less than 2 MB';
return FALSE;
}
try
{
$stmt->bindParam(":id", $id);
$stmt->bindParam(":FILE_NAME", $file_name, PDO::PARAM_STR);
$stmt->bindParam(":FILE_SIZE", $file_size, PDO::PARAM_STR);
$stmt->bindParam(":FILE_TYPE", $file_type, PDO::PARAM_STR);
$stmt->execute();
$desired_dir="image_uploads";
if(is_dir($desired_dir)==false)
{
mkdir($desired_dir, 0700);
}
if(is_file($desired_dir.'/'.$file_name)==false)
{
move_uploaded_file($file_tmp,$desired_dir.'/'.$file_name);
return TRUE;
}
else
{
$new_file=$desired_dir.'/'.$file_name.time();
move_uploaded_file($file_tmp,$new_file);
return TRUE;
}
}
catch(PDOException $e)
{
echo $e->getMessage();
return FALSE;
}
}
}
update.php
<?php
include_once 'DB.php';
$FILE_NAME = isset($_GET['FILE_NAME']) ? $_GET['FILE_NAME'] : '';
$FILE_SIZE = isset($_GET['FILE_SIZE']) ? $_GET['FILE_SIZE'] : '';
$FILE_TYPE = isset($_GET['FILE_TYPE']) ? $_GET['FILE_TYPE'] : '';
if(isset($_FILES['files'])){
$id = $_GET['id'];
if($crud->upload($id,$FILE_NAME,$FILE_SIZE,$FILE_TYPE))
{
echo "<script type='text/javascript'>alert('Successfully Updated!'); </script>";
}
else
{
echo "<script type='text/javascript'>alert('Updating Failed!');</script>";
}
}
<body>
<div class="container">
<p><strong>Survey Update</strong></p>
<br />
<div id="Survey-Update">
<form method="POST" enctype="multipart/form-data" action="">
<table class='table table-bordered'>
<?php echo $FILE_NAME; ?>
<input type="file" name="files[]" value="" multiple/>
<br />
<br />
<input type="submit"/>
</table>
</form>
</div>
</div>
</body>
</html>
是否所有字段爲空?如果不是,哪一個是空的?你基本上是在你的問題中對自己的答案進行「僞編碼」 - 如果沒有選擇圖像,則執行X.如果選擇了新圖像,則執行Y.對該條件進行測試。 –
是的,所有字段都是空的 – kier