我想将文件从Windows C#应用程序上传到运行PHP的Web服务器。将C#中的二进制数据上传到PHP
我知道WebClient.UploadFile方法,但我希望能够上传文件块,以便我可以监视进度并能够暂停/恢复。
因此,我正在读取部分文件并使用WebClient.UploadData方法。
我遇到的问题是我不知道如何访问从php发送UploadData数据。如果我在post数据上做print_r,我可以看到有二进制数据,但我不知道访问它的关键。我怎样才能访问二进制数据?有没有更好的办法,我应该这样做呢?
String file = "C:\\Users\\Public\\uploadtest\\4.wmv";
using (BinaryReader b = new BinaryReader(File.Open(file, FileMode.Open)))
{
int pos = 0;
int required = 102400;
b.BaseStream.Seek(pos, SeekOrigin.Begin);
byte[] by = b.ReadBytes(required);
using (WebClient wc = new WebClient()){
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] result = wc.UploadData("http://192.168.0.52/html/application.php", "POST", by);
String s = System.Text.Encoding.UTF8.GetString(result, 0, result.Length);
MessageBox.Show(s);
}
}
我建议就如何分割下载成多个部分,并下载每件作品单独看例子:
而且还阅读。这里有一个关于将分割块与PHP结合起来的问题http://stackoverflow.com/questions/9011138/handling-pluploads-chunked-uploads-on-the-server-side所有你需要做的就是弄清楚如何分割文件从.NET的块,你应该是黄金 – user3036342