我正在编写用于编辑包含输入文件字段的表单的代码。我从不同字段类型的数据库中获取所有值,但文件类型输入不显示其值。
我的代码如下:
<input class="picturebox" id="logo" name="userfile" value="<?php echo $discount_details->picture_name;?>" />
但实际上在渲染视图值属性对于userfile字段为null。
当有人正在编辑表单时,如何加载输入类型的值,并且不希望在编辑时更改他之前输入的图片。
答案 0 :(得分:3)
您可以将value属性赋予输入文件类型
如果您想在更新表单时显示文件内容,可以在单独的标记中显示
像:
<input type="file" /> <span><?php echo $row[column_name]?></span>
在这里你应该考虑一件事
如果选择使用新文件上传你可以更新列,否则使用未选中任何东西只更新其他内容而不用文件你应该用旧文件名更新列名。
$file = $_FILES['file']['name'];
if($file!="") {
move_uploaded_file($_FILES['file']['tmp_name'],'/image/'.$file);
} else {
$file = $oldfile;
}
答案 1 :(得分:1)
您只需将value
字段设为空,并在该输入字段(或下方)的上方显示旧图像。然后在提交表单后进行检查,if
$_POST['userfile']
为空不要更新table.picture_name
。
答案 2 :(得分:1)
简单的窍门是;给标签加一个ID
<input type="file" name="file" /> <span name="old" value="<?=$row[column_name]?>"><?php echo $row[column_name]?></span>
然后在PHP中使其如下所示:
$oldfile = $_POST['old'];
$file = $_FILES['file']['name'];
if($file!="") {
move_uploaded_file($_FILES['file']['tmp_name'],'/image/'.$file);
} else {
$file = $oldfile;
}