我正在开发一个带有 html/javascript/ajax 客户端的 Java 网络服务。用户是否可以通过任何方式在输入时提供本地 excel 文件并将其发送到服务器端?
我知道由于安全问题(C:/fakepath)我无法获取文件的路径,并且通过 ajax 请求传递 excel 文件的内容似乎不起作用。
我的问题有解决方案吗?
我正在开发一个带有 html/javascript/ajax 客户端的 Java 网络服务。用户是否可以通过任何方式在输入时提供本地 excel 文件并将其发送到服务器端?
我知道由于安全问题(C:/fakepath)我无法获取文件的路径,并且通过 ajax 请求传递 excel 文件的内容似乎不起作用。
我的问题有解决方案吗?
您可以使用普通的 html 上传机制上传文件:
您的 HTML 将如下所示:
<html>
...
Select a file to upload: <br />
<form action="UploadServlet" method="post"
enctype="multipart/form-data">
<input type="file" name="file" size="200" />
<br />
<input type="submit" value="Upload File" />
</form>
...
</body>
</html>
以及相应的jsp代码来处理上传。您可以在此处查看示例。
在服务器上拥有 excel 文件后,您可以随意处理它。
我想你知道如何通过HTML 中的<form>
and标签上传文件,例如:<input>
<form method="post" enctype="multipart/form-data" action="upload_script.php">
<input type="file" name="myfile" />
<input type="submit" value="Upload" />
</form>
异步执行此操作的技巧是在标签中使用<iframe>
andtarget
属性,例如:<form>
<form method="post" enctype="multipart/form-data" action="upload_script.php" target="myiframe">
<input type="file" name="myfile" />
<input type="submit" value="Upload" />
</form>
<iframe name="myiframe"></iframe>
可以将帧的大小设置为 0x0 像素,因此用户不知道它的存在。提交表单时会iframe
加载脚本页面。JavaScript 可以用来回调父框架(即原始窗口)来指示上传是成功还是失败等。
实际上,我确实用新的 XMLHttpRequest 版本 2 找到了解决这个问题的方法。
有关更多信息,请参阅此