我想将文件上传到也归我所有的服务器。我可以想到两种方法,即如何实现这一目标。
方法一: 使用HTTP POST请求上载文件。上传文件的标准方式。
方法2:它是一个两步过程。 首先,客户端向服务器发出包含文件所有详细信息的POST请求。 然后服务器向客户端发出Get请求以获取文件的内容。
这里的method2似乎更安全,因为服务器处于控制之中。服务器只有在服务器认为合适时才能从服务器请求数据,并限制需要传输的数据量。
我仍感到困惑,因为我不是这方面的专家。任何对此有更多后见之明的人都可以分享。
由于
答案 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上传文件的小教程。