我希望我的c#应用程序的用户能够从我的网站下载文件,如果他们提供某些详细信息。
我可以在c#中使用以下方式下载文件:
WebClient webClient = new WebClient();
webClient.DownloadFile("http://www.example.com/download.php", "file.txt");
我可以使用webClient.UploadValues方法上传值,但我不知道如何组合它们。也就是说,要同时下载文件和发布数据。
download.php文件包含以下内容:
$file = 'file.png';
if ((file_exists($file)) and ($_POST["ID"] == 'abc') ) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
else
header('HTTP/1.0 404 Not Found');
}
?>
我应该如何从C#发布数据然后下载文件?
答案 0 :(得分:3)
您必须设置Content-Type
并传递数据。
WebClient client = new WebClient();
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte []result=client.UploadData("http://www.example.com/download.php",
"POST",
System.Text.Encoding.UTF8.GetBytes("ID=abc"));
//save the byte array `result` into disk file.