Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在浏览要上载的文件时自动获取文件名?_Javascript - Fatal编程技术网

Javascript 如何在浏览要上载的文件时自动获取文件名?

Javascript 如何在浏览要上载的文件时自动获取文件名?,javascript,Javascript,我想创建一个上传表单。 当我浏览一个文件时。例如。C:\mypicture\winter.jpg 我想自动获取文件名并填写文本框“winter.jpg” 谢谢。这是不可能的。网站不能预先确定数据在本地磁盘上的位置 如果可能的话,会出现如下问题: 如果文件不存在怎么办 如果文件对安全敏感(例如加密密钥),该怎么办 @PeeHaa评论说,这是一个安全问题,因此,如果存在这样的示例,这显然是一个安全问题。这个JSFIDLE示例不适用于我…请参阅纯JS中的演示: 除非您的用户允许您的应用程序运行到

我想创建一个上传表单。 当我浏览一个文件时。例如。C:\mypicture\winter.jpg 我想自动获取文件名并填写文本框“winter.jpg”


谢谢。

这是不可能的。网站不能预先确定数据在本地磁盘上的位置

如果可能的话,会出现如下问题:

  • 如果文件不存在怎么办
  • 如果文件对安全敏感(例如加密密钥),该怎么办
@PeeHaa
评论说,这是一个安全问题,因此,如果存在这样的示例,这显然是一个安全问题。这个JSFIDLE示例不适用于我…

请参阅纯JS中的演示:


除非您的用户允许您的应用程序运行到您的系统中,否则我认为您无法做到这一点。@mugur事实上这是可能的:@Hello Peehaa,您的链接非常有用,谢谢。您在哪个浏览器上测试过它。因为它适用于Chrome和IE9。如果文件是安全敏感的,你为什么要上传到网站上?我的同事,我完全误解了@WaiYan的问题。。。。你的小提琴按预期工作…你好,杰洛维奇,这不是你的错误。由于我的英语用法。我是英语初学者。@WaiYan我看到(更)糟糕的情况:-)请检查你的脚本好吗?这个脚本不适合我。可能是我输入了一个错误(你有没有遇到JS错误)。顺便说一句,我已经修复了该类型。我已经在IE9和Chrome(Windows)上对其进行了测试
<input type="file" id="file">
<input type="text" id="name">​

var input = document.getElementById('file');
var name = document.getElementById('name');

if (input.addEventListener) {
    input.addEventListener('change', add_filename);
} else if (input.attachEvent) {
    input.attachEvent('onchange', add_filename);
}

function add_filename()
{
    name.value = input.value.split(/\\|\//).pop();
}
(function() {
    $('#file').change(function() {
        $('#name').val($(this).val().split(/\\|\//).pop());
    });
})(jQuery);​