为啥图像名称未显示在表单字段中以进行更新?

Posted

技术标签:

【中文标题】为啥图像名称未显示在表单字段中以进行更新?【英文标题】:Why image name not showing in the form field for update?为什么图像名称未显示在表单字段中以进行更新? 【发布时间】:2021-08-05 23:04:55 【问题描述】:

我想知道为什么图像名称没有出现在文件字段的值中,而当我尝试使用图像名称显示的不同类型的字段时。

我有一个 jQuery,它从数据库中感知图像名称并将值放在表单字段中,但它在字段类型文本上工作正常,而不是字段类型文件我该如何解决它

看我的单行代码

$('#file').value(data.image);

//My input field not replaced by that image, it replace when I change type="file" to type="text"
<input type="file" name="file" id="file">

【问题讨论】:

您不能将值放入输入类型文件中。最好的方法是使用数据库中的值设置隐藏输入。 【参考方案1】:

使用DataTransfer()设置输入类型文件的值。

在您的情况下,假设data.imageyourImageFromDatabase.jpg

let  sample =   new DataTransfer(); 
sample.items.add(new File(['yourFile'], 'yourImageFromDatabase.jpg')); //get "yourImageFromDatabase" value from `data.image`
file.files = sample.files;

// Get filename
 let name = $('#file').val().split('\\').pop();;
 console.log(name);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="file" name="file" id="file">

【讨论】:

file.files这个file关键字是什么意思,因为它说的是未定义的文件错字@Shree 运行 sn-p 就可以了。阅读有关DataTransfer() 的文档。了解您的代码是如何工作的。这是最好的编程方式。祝你好运。

以上是关于为啥图像名称未显示在表单字段中以进行更新?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中以编辑形式显示时间戳格式?

表单未预先填充Angular 8

在 PDF 文档中查找可输入表单字段的字段名称?

如果提交表单时未选中复选框,如何将布尔值更新为 0

为啥模态演示表单未按预期显示?

PHP 表单元素未显示。