Javascript 文件上载值更改?

Javascript 文件上载值更改?,javascript,jquery,html,Javascript,Jquery,Html,我希望在文件名(上载的文件)太长时更改文件上载值。例如,如果文件名为“This_file_has_long_name.txt”,我希望用有限的字符显示它,如“This_file..name.txt” 因此,我尝试了以下方法,但不起作用。请告知 $("#file_browser").change(function() { var filename = this.value; filename = filename.substr(0,10); alert(filename); doc

我希望在文件名(上载的文件)太长时更改文件上载值。例如,如果文件名为“This_file_has_long_name.txt”,我希望用有限的字符显示它,如“This_file..name.txt”

因此,我尝试了以下方法,但不起作用。请告知

$("#file_browser").change(function()
{
  var filename = this.value;
  filename = filename.substr(0,10);
  alert(filename);
  document.getElementById("file_browse").value = filename;
});
试试这个:

注意:如果名称的长度大于等于14,请将其更改。

$(文档).ready(函数(){
$(“#文件浏览器”).change(函数(){
var filename=$(this.val().replace(/C:\\fakepath\\\/i',);
//或者对于完整路径使用,var filename=$(this).val();
var len=filename.length;

如果(len出于安全考虑,您无法在js中更改属性名称,您将有 msg
SecurityError:操作不安全。

如果你想这样做,你需要它隐藏默认的输入文件css去谷歌,因为你有图图 并在一个

示例中添加您的filname自定义,并放置在您想要的位置

如果您确实需要更改名称,请在服务器端进行更改


你好

您最好使用
name
属性只获取文件名并隐藏默认文件输入,因为您无法更改其值

$(“#文件输入”).change(函数(){
if(this.files.length==0){
回来
}
var name=this.files[0].name;
如果(名称长度>14){
name=name.substr(0,7)+“…”+name.substr(-7);
}
$(“#fileNameText”).text(名称);
});
$(“#选择按钮”)。单击(函数(){
$(“#文件输入”)。单击();
});

选择文件
选择一个文件

来点小把戏怎么样

JS

调整左边距和顶部位置

将文件名存储到变量
数据中

然后使用
$(this.val();
创建一个空字段,使您的输入类型文件标签包含类似
无文件选择的内容,这是因为为了避免您的输入文件名太长意味着将出现滚动

对包含点使用“替换图案”

然后制作用于写入文件名的div标记


不要忘了添加透明文件文本颜色的css。

它是如何工作的?这里的预期结果是什么?
$("#file_browse").change(function()
{
    var data = $(this).val();
    $(this).val();
    data = data.replace(/(.{1,10}).{1,}(.{6})/,"$1..$2");
    $("#file_browse").after("<div style='position:absolute; top:4px;  margin-left:230px;'>"+data+"</div>");

});
input[type=file]
{ 
        color:transparent;
}