正如大家所建议的,这样做的方法是使用网络服务。我找不到一个明确的例子,如何在两端(ASP.NET 和 PHP)做到这一点,所以这就是我最终得到的,而且它有效。
PHP 文件
<?php
$target_path = "uploadfolder/";
$target_path = $target_path . basename( $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
echo "OK";
} else{
echo "ERROR ".$target_path;
}
?>
这就是我在 ASP.NET 方面的内容:
private void UploadFile(string postUrl, string postFilename)
{
WebClient wb = new WebClient();
try
{
byte[] responseArray = wb.UploadFile(postUrl, postFilename);
string resp = Encoding.UTF8.GetString(responseArray);
// You can read the response (resp) and check if you get an OK or ERROR from the PHP
}
catch (WebException e)
{
var response = (HttpWebResponse)e.Response;
// Do stuff based on the exception
}
}
用法:UploadFile("http://www.domain.com/thephpscript.php",FileUpload1.FileName);
很幸运,我猜到当您使用 .NET WebClient.UploadFile 方法时,它会将文件命名为“文件”,您需要在 PHP 端的 $_FILES 关联数组中知道该文件。这就是我发布这个的主要原因,所以我希望另一个善良的灵魂不必猜测。
当然,您应该采取措施检查用户上传的文件类型等,但这是基础。