【发布时间】:2012-06-12 09:01:43
【问题描述】:
我想使用 C# 客户端应用程序和 Nusoap 网络服务上传文件。我怎么能这样做?我使用 Nusoap 网络服务插入数据库,但上传文件我不知道。请帮我。 谢谢。
【问题讨论】:
标签: c# web-services nusoap
我想使用 C# 客户端应用程序和 Nusoap 网络服务上传文件。我怎么能这样做?我使用 Nusoap 网络服务插入数据库,但上传文件我不知道。请帮我。 谢谢。
【问题讨论】:
标签: c# web-services nusoap
由于我对 NuSOAP 没有任何经验,因此我将尽我所知将文件上传到运行 PHP 的服务器,而不使用 NuSOAP。
以下代码会将给定文件的内容POST 发送到 PHP 页面,就好像它是通过标准 HTML 表单发送的一样。
public void UploadFile(string path) {
WebClient wc = new WebClient();
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
Int64 numBytes = new FileInfo(path).Length;
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] data = br.ReadBytes(Convert.ToInt32(numBytes));
br.Close();
fs.Close();
wc.UploadData("http://127.0.0.1/upload.php", "POST", data);
}
编辑:这是我不久前用于此的 PHP。它可能不安全,并且每次上传新文件时总是会覆盖 same 文件。为了安全起见,您可以尝试对此进行一些动态性,以及一些文件检查......但您也应该能够使用用于标准上传(来自网络表单)的修改后的 PHP 文件。
<?php
$fp = fopen('snap.jpg', 'wb');
fwrite($fp, file_get_contents('php://input'));
fclose($fp);
?>
【讨论】: