<input type="file" id="file-id" name="file_name" onchange="theimage();">
Run Code Online (Sandbox Code Playgroud)
这是我的上传按钮.
<input type="text" name="file_path" id="file-path">
Run Code Online (Sandbox Code Playgroud)
这是我必须显示文件完整路径的文本字段.
function theimage(){
var filename = document.getElementById('file-id').value;
document.getElementById('file-path').value = filename;
alert(filename);
}
Run Code Online (Sandbox Code Playgroud)
这是解决我问题的JavaScript.但在警报值给了我
C:\fakepath\test.csv
Run Code Online (Sandbox Code Playgroud)
和Mozilla给了我:
test.csv
Run Code Online (Sandbox Code Playgroud)
但我想要本地完全限定的文件路径.如何解决这个问题?
如果这是由于浏览器安全问题,那么应该采用哪种替代方法呢?
目前,由于安全策略,Chromium无法通过ajax读取本地文件--allow-file-access-from-files.但我目前需要创建一个Web应用程序,其中数据库是一个xml文件(在极端情况下为json),位于一个带有index.html的目录中.可以理解,用户可以在本地运行该应用程序.是否有解决xml-(json-)文件的解决方法,而不将其包装在函数中并更改为js扩展名?
loadXMLFile('./file.xml').then(xml => {
// working with xml
});
function loadXMLFile(filename) {
return new Promise(function(resolve, reject) {
if('ActiveXObject' in window) {
// If is IE
var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(filename);
resolve(xmlDoc.xml);
} else {
/*
* how to read xml file if is not IE?
* ...
* resolve(something);
*/
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在制作一个应用程序,我需要使用 JavaScript 和 HTML 5 读取本地文件,没有任何<input>标签或用户交互。
在我的研究中,我发现了两个在 SO 中被大量引用的教程:
但是,有一个问题。这两个教程都需要通过input标签进行用户交互,这是一个致命的问题,因为我想自动将文件的内容读入一个字符串。
到目前为止,我设法获得了以下代码:
let readFile = function(path) {
let reader = new FileReader();
reader.onload = function(e) {
var text = reader.result;
console.log(text);
};
// Read in the image file as a data URL.
reader.readAsText(MissingFileHandle);
};
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,我错过了一个重要的步骤,我错过了MissingFileHandle。我的想法是将 a 传递path给此方法,因此该方法会将文件作为文本在本地读取并将其打印到控制台中,但我无法实现这一点。
给定相对路径,如何在不使用<input>标签的情况下使用 HTML 5 读取文件的内容?