2017-04-09 56 views
0

目前我正在制作一个程序,其中可以作为文本编辑器使用。我有一个部分,您可以重命名标题,当您保存时,它会使用document.getElementById('title').innerHTML并使其名称为.txt用Javascript/jQuery读取文件的名称

例如:

如果标题的div有“一号文件”的innerHTML,该文件将被称为“文档.txt”。

我的问题是,我希望它也上传一个文件,并采取其文件名。

例如:

我上传了一个名为“文档.txt”文件,并在功能使标题为“文档”。 (我使用的是.replace('.txt',''),使其在标题没有显示出和+= '.txt'使文件实际上是一个.txt保存时。

任何人都知道如何使用<input type='file'>一个字符串,使已上传文件的文件名在别处使用

下面是一些代码来看待它?

var id = function(id){return document.getElementById(id)}; 

function readText(that) 
    { 
     var reader = new FileReader(); 
     reader.onload = function(e) 
      { 
       var output = e.target.result, 
        name = FILENAMEFIND(); 
       id('page').innerHTML = output; 
       id('title').innerHTML = name; 
      } 
     reader.readAsText(that.files[0]); 
    } 
+0

可能重复的[无法获得输入类型的值=“文件”?](http://stackoverflow.com/questions/5903323/cant-get-value-of-input-type-file) –

+0

是的,你是正确的,但是它包含我不想要的''C:\ fakepath \'',任何线索如何删除?我猜只是''id('upfile')。replace('C:\ fakepath \','')''会起作用,但文件总是在C盘中?任何想法如何做到这一点? –

+0

不清楚你想达到什么目的? – guest271314

回答

0

好吧,我想通了自己:

var id = function(id){return document.getElementById(id)}, 
    input = id("upfile"), 
    file = input.value.split("\\"), 
    fileName = file[file.length-1]; // Take purely the file name 
    id('title').innerHTML = fileName; // Outputted to title div