2013-05-16 135 views
1

我想使用.NET将本地磁盘上的图片文件上传到Web服务器,在该服务器中,PHP脚本将接收它并保存到服务器。我不确定传输数据的首选方式,现在我意识到它并不像我希望的那么简单。从.NET客户端上传文件到服务器上的PHP

问题是,PHP的文件上传机制只接受编码为multipart/form-data的数据,而我看不到一种方法让WebClient以这种方式上传文件,而无需将自己编码到字节数组中并上传。

这将是一个更好的解决方案:我应该经历在客户端上执行此编码的麻烦吗?或者,如果我只是使用WebClient.UploadFile,我应该能够从php://input收到它,如果是这样,它是否需要解码?

我发现在这个和其他网站上做了编码的几个例子,所以我不需要帮助。我只想看看这种客户端编码是否合理或必要,或者我是否可以在服务器上完成这项工作,而不是使用$_FILES并以更“手动”的方式接收数据。

从长远来看我将寻求更好地理解HTTP协议。

+0

你真正想实现的是什么?上传可以通过很多方式完成,但它取决于你想要做什么 – Vineet1982

+0

我想用.NET将本地磁盘上的图片文件上传到网络服务器,以适合被PHP接收并保存到服务器。 – Martin

+0

将文件上传到PHP最简单的方法是使用PUT HTTP方法。我不知道.NET中有哪些类型的HTTP库,但是在PHP端,您可以从php://输入中获取PUT'ed文件。不需要编码。 – Janoszen

回答

0

我已经计算出我自己的答案,这要归功于Janoszen的评论。只是我想要的那种简单。

下面是.NET客户端(例如在Visual Basic)的摘录:

Dim wc As New WebClient() 
wc.UploadFile(url, "PUT", filename) 

,并从服务器上的PHP:

file_put_contents(filename, file_get_contents('php://input')); 

感谢Janoszen!

相关问题