如何从表单中获取文件内容?

b10*_*ard 5 html javascript

如何从HTML表单中获取文件的内容?这是我正在使用的一个例子.所有它输出的东西像"C:\ Fake Path \nameoffile

<html>
<head>

<script type="text/javascript">
    function doSomething(){
        var fileContents = document.getElementById('idexample').value;
        document.getElementById('outputDiv').innerHTML = fileContents;
    }
</script>

</head>
<body >

<form name = "form_input" enctype="multipart/form-data">

<input type="file" name="whocares" id="idexample" />
<button type="button" onclick="doSomething()">Enter</button>

</form>

<div id="outputDiv"></div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

编辑:似乎解决方案很难以这种方式实现.我想要完成的是将文件发送到我的网络服务器上的python脚本.这是我第一次尝试这种事情,所以欢迎提出建议.我想我可以将python脚本放在我的cgi文件夹中并使用类似的东西将值传递给它

/cgi/pythonscript.py?FILE_OBJECT=fileobjecthere&OTHER_VARIABLES=whatever
Run Code Online (Sandbox Code Playgroud)

这是将文件内容发送到网络服务器而不是让javacript直接使用FileReader打开它的更好的解决方案吗?

cop*_*opy 5

您实际上可以使用新FileReader对象执行此操作.

试试这个工作示例

function doSomething()
{
    var file = document.getElementById('idexample');

    if(file.files.length)
    {
        var reader = new FileReader();

        reader.onload = function(e)
        {
            document.getElementById('outputDiv').innerHTML = e.target.result;
        };

        reader.readAsBinaryString(file.files[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

(适用于最新版本的Chrome和Firefox)