-3

大家好,请您检查我在 php.ini 中的代码。当我需要更新包括图片在内的数据库记录时遇到问题,每次我需要更新时,我都需要再次浏览图片以进行更新,否则它将覆盖旧图片和空白,所以我希望它对于图片是可选的当我们更新时,如果我们不需要更新图片,我希望它仍然存储旧图像。

这是我的代码:

if(isset($_POST["save"])){
$sid = $_POST['sid'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$sex = $_POST['sex'];
$nationality = $_POST['nationality'];
$photo = $_FILES['photo']['tmp_name'];
$dept = $_POST['dept'];
$position = $_POST['position'];
$date = $_POST['date'];
$status = $_POST['status'];
$efile = $_POST['efile'];

if(!isset($photo))
  echo "Please select the photo";
  else
  {
  $photo=addslashes(file_get_contents($_FILES['photo']['tmp_name']));
  $photo_name = addslashes($_FILES['photo']['name']);
  $photo_size = getimagesize($_FILES['photo']['tmp_name']);
  if ($photo_size==FALSE)
  echo "that's not an image.";
 }

 $updateSQL = "UPDATE staff SET sid='$sid', fname='$fname', lname='$lname', sex='$sex', nationality='$nationality', photo='$photo', dept='$dept', position='$position', date='$date', status='$status', efile='$efile' WHERE sid='$_POST[hidden]'";
4

1 回答 1

1

据我了解的问题,

您想保留旧图像和新图像。那么为什么不添加一个唯一编号作为图像名称的前缀。使用生成唯一 ID 的函数uniqid 。

前任 :

$file_name = uniqid().$_FILES['photo']['tmp_name'];

然后将 $file_name 存储在数据库中并在图像中上传。

还要记住,您的代码容易受到 SQL 注入的攻击。

于 2013-04-28T04:35:18.867 回答