无法获取输入类型=“文件”的值?

发布于 2024-11-05 05:20:43 字数 158 浏览 0 评论 0原文

我有一个

当我使用时: alert($("#uploadPicture").val ());

它会警告一个空对话框。

I have a <input type="file" id="uploadPicture" value="123">

When I'm using: alert($("#uploadPicture").val());

It alerts an empty dialog.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

溺深海 2024-11-12 05:20:43

@BozidarS:FileAPI 现在得到了很好的支持,并提供了许多有用的选项。

var file = document.forms['formName']['inputName'].files[0];
//file.name == "photo.png"
//file.type == "image/png"
//file.size == 300821

@BozidarS: FileAPI is supported quite well nowadays and provides a number of useful options.

var file = document.forms['formName']['inputName'].files[0];
//file.name == "photo.png"
//file.type == "image/png"
//file.size == 300821
旧情别恋 2024-11-12 05:20:43

您可以读取它,但无法设置它。 value="123" 将被忽略,因此在您单击它并选择一个文件之前它不会有值。

即使如此,该值也可能会被 c:\fakepath\ 之类的内容破坏,以保持用户文件系统详细信息的私密性。

You can read it, but you can't set it. value="123" will be ignored, so it won't have a value until you click on it and pick a file.

Even then, the value will likely be mangled with something like c:\fakepath\ to keep the details of the user's filesystem private.

病女 2024-11-12 05:20:43

您可以使用 document.getElementById(); 获取它

var fileVal=document.getElementById("some Id");
alert(fileVal.value);

将给出 file 的值,但它给出 fakepath 如下

c:\fakepath\filename

You can get it by using document.getElementById();

var fileVal=document.getElementById("some Id");
alert(fileVal.value);

will give the value of file,but it gives with fakepath as follows

c:\fakepath\filename
巷雨优美回忆 2024-11-12 05:20:43

文件数组

let files = document.getElementById('your_input_id').files

第一个文件

let file = document.getElementById('your_input_id').files[0]

显示图像加载

const reader = new FileReader()

let files = document.getElementById('your_input_id').files
reader.onload = async (event) => {
    document.getElementById('preview').setAttribute('src', event.target.result)
}
reader.readAsDataURL(files[0])

array of files

let files = document.getElementById('your_input_id').files

first file

let file = document.getElementById('your_input_id').files[0]

show image onload

const reader = new FileReader()

let files = document.getElementById('your_input_id').files
reader.onload = async (event) => {
    document.getElementById('preview').setAttribute('src', event.target.result)
}
reader.readAsDataURL(files[0])
橘味果▽酱 2024-11-12 05:20:43
$('input[type=file]').val()

这将使您选择的文件。

但是,您无法自行设置该值。

$('input[type=file]').val()

That'll get you the file selected.

However, you can't set the value yourself.

流心雨 2024-11-12 05:20:43

您无法像使用 value="123" 那样在标记中设置 file 输入的 value

这个例子表明它确实有效:
http://jsfiddle.net/marcosfromero/7bUba/

You can't set the value of a file input in the markup, like you did with value="123".

This example shows that it really works:
http://jsfiddle.net/marcosfromero/7bUba/

思慕 2024-11-12 05:20:43

这是一个老问题,但以防万一有人碰到这个问题......

var input = document.getElementById("your_input");
var file = input.value.split("\\");
var fileName = file[file.length-1];

不需要正则表达式,jQuery......

It's old question but just in case someone bump on this tread...

var input = document.getElementById("your_input");
var file = input.value.split("\\");
var fileName = file[file.length-1];

No need for regex, jQuery....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文