使用JavaScript将文本文件发送到服务器

7
我需要将一个文本文件发送到服务器并保存它。如何使用JavaScript实现?
4个回答

2

当然要使用ajax。

在服务器上有一个文件,PHP或ASP-取决于您的互联网服务器是什么。 此文件将接受文本文件(数据和名称),还应检查大小以及此文件是否已存在,如果一切正常,则保存它并返回字符串“OK”

在客户端,javascript方面,只需使用ajax或HTTPREQUST对象将信息发送到服务器-周围有很多文档。如果您收到“OK”的响应,则知道它已成功发送。 更好的方法是:不要使用HTTPREQUEST,而是进行动态脚本标记插入-其中您附加的脚本的源属性是服务器上的文件,例如:

var a = document.createElement('script');
a.type = 'text/javascript';
a.src = "http://server/serverFile.PHP?filename=XXX&data=LONG STRING OF DATA REPRESTING THE DATA TO BE SAVED PROBABLY LESS THAN 2K IN SIZE AND ALSO YOU SHOULD ESCAPE OR ATLEAST URIENCODE IT";
document.body.appendChild(a);

在服务器文件serverFILE.PHP中:

    <?php
    // some code to save the request variable [data].
    // if all is ok:
    alert("ok")
    // or:
    result = "ok"
?>

明白了吗?

注意:文件大小可能有不到2K的限制。


在这个例子中,你给出的是需要明确指定文件数据的。但我不想这样做,因为文件数据可能会有所变化。那么该怎么办呢? - sulakshana
只需像这样编写代码:url = "http://server/serverFile.PHP?filename=XXX&data=" + encodeURIComponent(YOURDATA)。 - alfred

2

这方面存在各种安全问题。您愿意访问一个网站,让它从您的计算机上传文件到服务器吗?

对于通用网站来说,用户权限被设置为拒绝此类访问,这是不可能的。

但如果您想在应用程序中进行此操作,并且您能够控制其用户的安全设置,并保证其使用的是Windows和IE,则可以通过读取文件并通过发布到服务器来传递详细信息。请参见以下链接:http://www.javascripter.net/faq/reading2.htm

但是,一旦离开IE或Windows,那么您将会遇到困难。


嗨,是的,我想访问一个网站,可以将我的文件从本地上传到服务器。但是您提供的链接对我来说不太清楚。您能否请给我更多关于如何操作的详细信息? - sulakshana
2
认真吗?那么,你会为互联网上的任何网站拥有从你的机器上传任何文件的能力感到高兴吗?如果那个网站试图收集关于你的信息怎么办?你为此付费的带宽呢?那将是……嗯……无政府状态! :-) 至于“阅读JavaScript文件”,尝试在谷歌上搜索这个短语,看看你是否能找到任何有用的东西。 - James Wiseman
1
@JamesWiseman:刚看到这条消息。我认为你错过了重点。我认为他并不是要求一个用JS搜索机器并自动拉取文件的网站,而是通过一个网站使用JS上传文件(这就是上传照片到Facebook时发生的情况)。使用multipart/form-data是可能的;通常接收方是一个控制文件大小并将文件存储在某处的php/perl脚本。 - vol7ron

1
你可以创建一个类似 Ajax 的函数,制作一个宽高为0像素的 iframe,并将其设为包含文件上传输入框的表单的目标,然后使用 action PHP 处理它。
<form action="upload.php" target="target" method="post"
name="uploadform" id="uploadform" enctype="multipart/form-data">
  <label for="input_file_upload">Upload:</label>
  <input onchange="document.uploadform.submit();" size="80"
  type="file" name="file_upload[]" id="file_upload"
  multiple="multiple" />
  <input type="hidden" name="fileUpload" value="upload" />
  <input type="button" value="Upload" />
</form>
<iframe id="target" name="target" style="width: 0px; height: 0px;">
</iframe>

1

Javascript 是一种前端语言。您可以使用 PHP 或任何服务器端语言。


我的问题是,我想编写一个HTML页面,可以从客户端将文本文件上传到服务器。使用JavaScript是否可能?由于客户端无法使用PHP。 - sulakshana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接