如何设置它的值?
<input type="file" />
如何设置它的值?
<input type="file" />
当前回答
这不是回答你的问题(其他人已经回答了),但如果你想有一些上传文件字段的编辑功能,你可能想做的是:
显示这个字段的当前值,只需打印文件名或URL,一个可点击的下载链接,或者如果它是一个图像:只显示它,可能是缩略图 <input>标记上传一个新文件 选中该复选框时,删除当前上传的文件。注意,没有办法上传一个“空”文件,所以你需要这样做来清除字段的值
其他回答
你不能。
设置文件输入值的唯一方法是由用户选择文件。
这样做是出于安全考虑。否则,您将能够创建一个JavaScript,自动从客户机的计算机上传特定的文件。
你不能。这是一种安全措施。想象一下,如果有人编写JS,将文件输入值设置为一些敏感数据文件?
在html中定义:
<input type="hidden" name="image" id="image"/>
在JS:
ajax.jsonRpc("/consulta/dni", 'call', {'document_number': document_number})
.then(function (data) {
if (data.error){
...;
}
else {
$('#image').val(data.image);
}
})
后:
<input type="hidden" name="image" id="image" value="/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8U..."/>
<button type="submit">Submit</button>
出于安全考虑,不能将其设置为客户端磁盘文件系统路径。
想象一下:
<form name="foo" method="post" enctype="multipart/form-data">
<input type="file" value="c:/passwords.txt">
</form>
<script>document.foo.submit();</script>
你不希望你访问的网站能够做到这一点,对吗?=)
您只能将其设置为一个公共可访问的web资源,如答案所示,但这显然与客户端磁盘文件系统路径不同,因此在该上下文中它是无用的。
这个话题非常古老,但我认为有人需要这个答案!
<input type="file" />
<script>
// Get a reference to our file input
const fileInput = document.querySelector('input[type="file"]');
// Create a new File object
const myFile = new File(['Hello World!'], 'myFile.txt', {
type: 'text/plain',
lastModified: new Date(),
});
// Now let's create a DataTransfer to get a FileList
const dataTransfer = new DataTransfer();
dataTransfer.items.add(myFile);
fileInput.files = dataTransfer.files;
</script>