我需要通过HTTP POST发送PDF文件。
我正在使用第三方(nSoftware)dll发送它。
但我的问题是,如何在服务器端接收并保存它。
我用HTTPlistener尝试过,但无法做到。
有人可以帮我这个..
谢谢, 麦迪
答案 0 :(得分:0)
我在下面试过..
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
listener = new HttpListener();
listener.Prefixes.Add("http://localhost:122/");
listener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;
listener.Start();
this.listenThread1 = new Thread(new ParameterizedThreadStart(startlistener));
listenThread1.Start();
}
private void startlistener(object s)
{
while (true)
{
ProcessRequest();
}
}
private void ProcessRequest()
{
var result = listener.BeginGetContext(ListenerCallback, listener);
result.AsyncWaitHandle.WaitOne();
}
private void ListenerCallback(IAsyncResult result)
{
var context = listener.EndGetContext(result);
Thread.Sleep(1000);
var data_text = new StreamReader(context.Request.InputStream, context.Request.ContentEncoding).ReadToEnd();
var cleaned_data = System.Web.HttpUtility.UrlDecode(data_text);
byte[] bytes = new byte[1024 * 1024];
int size = 1024 * 1024;
context.Request.InputStream.Read(bytes, 0, size);
using (FileStream fsNew = new FileStream("E:\\temp\\test.pdf", FileMode.Create, FileAccess.Write))
{
fsNew.Write(bytes, 0, bytes.Length);
}
context.Response.StatusCode = 200;
context.Response.StatusDescription = "OK";
MessageBox.Show(cleaned_data);
context.Response.Close();
}
有了这个,我就可以保存创建一个PDF但它没有打开,而且数据也不仅仅是原始PDF中的实际数据(我认为是http的一些标题)。
我希望这是有道理的......
谢谢, 马杜