我有两个在线网站,第一个是使用asp.net,C#,sql server开发的PM,第二个使用php,mysql开发。
我需要通过选择一个网站进行CRUD操作来管理数据(asp.net),而在另一个网站(php)上,查看者只能查看数据(由asp.net网站插入)。
因为查看的信息是相同的,但是在不同的网站上。
我需要在asp .net网站上插入带有3个示例文件的人员数据,并将信息和示例文件插入并移动到php网站。
我真的不知道要实现什么,我可以使用Webclient()将数据发布到php网站,但是仍然如何将文件移动到php页面。
我可以使用webclient / ajax post将文件路径从c#传递到PHP,以将文件从一台服务器上传到另一台服务器吗?
发表评论说!
“文件输入是用于将文件从您的计算机发送到服务器。即使您通过完整路径,PHP也无法“伸出”到本地计算机并获取文件。这是不可能的,因为这将是巨大的负担安全孔。”
Passing file path to php script
需要帮忙 :(
亲切的答复
最佳答案
您可以在php服务器上安装并设置ftp软件,然后可以在c#中使用FtpWebRequest上传文件:
private FtpWebRequest GetRequest(string requestUri, string method, bool keepAlive)
{
FtpWebRequest retVal = null;
try
{
retVal = FtpWebRequest.Create(requestUri) as FtpWebRequest;
retVal.Method = method;
retVal.Credentials = new NetworkCredential(username, password);
retVal.UsePassive = true;
retVal.UseBinary = true;
retVal.KeepAlive = keepAlive;
// retVal = request.GetRequestStream();
}
catch (Exception ex)
{
}
return retVal;
}
public bool UploadFile(string fileToUpload)
{
bool retVal = false;
FtpWebRequest request = null;
Stream outstream = null;
FileStream fs = null;
try
{
request = GetRequest(String.Format("{0}/{1}", host, Path.GetFileName(fileToUpload)), WebRequestMethods.Ftp.UploadFile, false);
byte[] buffer = new byte[4096];
int count = 0;
outstream = request.GetRequestStream();
using (FileStream streamReader = File.OpenRead(fileToUpload))
{
int read;
while ((read = streamReader.Read(buffer, 0, buffer.Length)) > 0)
{
Console.WriteLine("Writing to FTP stream: " + (count += read));
outstream.Write(buffer, 0, read);
outstream.Flush();
}
}
retVal = true;
}
catch (Exception ex)
{
}
finally
{
Console.WriteLine("Closing the FTP stream");
if (request != null)
{
request.Abort();
}
if (outstream != null)
outstream.Close();
}
return retVal;
}