使用HTTP Post Request上传文件

时间:2010-04-04 14:03:33

标签: html http

我想将文件上传到也归我所有的服务器。我可以想到两种方法,即如何实现这一目标。

方法一: 使用HTTP POST请求上载文件。上传文件的标准方式。

方法2:它是一个两步过程。 首先,客户端向服务器发出包含文件所有详细信息的POST请求。 然后服务器向客户端发出Get请求以获取文件的内容。

这里的method2似乎更安全,因为服务器处于控制之中。服务器只有在服务器认为合适时才能从服务器请求数据,并限制需要传输的数据量。

我仍感到困惑,因为我不是这方面的专家。任何对此有更多后见之明的人都可以分享。

由于

4 个答案:

答案 0 :(得分:1)

你最好的选择是Method1,只是你的输入类型文件的标准POST和enctype multipart / form-data

<form action="." enctype="multipart/form-data" method="post">
  <p>files: <input type="file" name="datafile" size="40"></p>

  <div>
    <input type="submit" value="submit">
  </div>
</form>

答案 1 :(得分:1)

如果你在自定义客户端中使用套接字(例如用delphi编写),你可以做方法2.即:用户请求从客户端上传文件,客户端向服务器发送请求,服务器响应客户端请求发送文件,之后客户端发布请求的文件而无需用户干预。标准Web浏览器无法理解服务器对文件的请求。如果您使用delphi套接字解决方案,则可以使用户实际上不选择任何文件。

答案 2 :(得分:0)

我认为普通的POST上传方式更可靠。方法2不必要地复杂,你也可能遇到讨厌的防火墙和NAT问题。

如果您在服务器上设置了适当的限制,则不会遇到上传大小等问题。

答案 3 :(得分:-1)

定义更安全?

如果你想控制用户可以上传的内容和不上载的内容,那么先考虑一下他们应该做什么,不做什么。 第一步可以定义允许的扩展数组。

$extensions = array("pdf","doc","txt");

然后,如果用户上传文件,请使用字符串降低并获取文件扩展名,然后检查扩展名是否在您的数组中

if(!in_array($extension,$extensions))
//return false or what ever you want do if file extension is not allowed.

这是一个关于如何使用PHP和HTML上传文件的小教程。

http://www.tizag.com/phpT/fileupload.php