1
我在处理包含PDF的POST请求,并试图重新构建该文件并将其保存到我的服务器上。下面是我使用的代码,pdfString是请求主体:C#.net将POST请求中的内容写为PDF生成空白PDF
string myPath = @"C:\mypath\mypdf.pdf";
byte[] byteArray = Encoding.UTF8.GetBytes(pdfString);
MemoryStream stream = new MemoryStream(byteArray);
using (var writeStream = File.OpenWrite(myPath))
{
stream.CopyTo(writeStream);
writeStream.Close();
}
这给了我一个文件相比,原来这是正确的尺寸和页数,但所有的网页都空白。
在这种情况下是很有用的,这里是请求正文里的一些PDF的元数据看起来存储的开头:
Content-Disposition: form-data; name="file"
%PDF-1.3
%
%100230[584]
1 0 obj
<<
/Filter/Standard
/R 2 /V 1
/O<ad6a15e8126b8f8185e4db64f2a41b8bd94a79eed4f6fd1e6b17da57ea2d8ba9>
/U<e1f8eabd02255525f1eb0c68575189d08e577035a6905adeb50d84e67779a066>
/P 4
>>
endobj
2 0 obj
<<
/Producer(sZT\310]!\354w\244\214)
/Author(zS[\315D\002\332\005\252\263\b$\375f]\334)
/Title()
/Subject(\007\004\017\233\0260\203g\205\260\016/\375`J\324x"8v)
/Keywords()
/CreationDate(t\014\017\233\007T\222\024\330\346Qr\2539\037\210)
/ModDate(t\014\017\233\007T\222\024\330\346Qr\250=\033\214)
/Creator(Gfy\355\026\005\332\005\236\257"7\371lK\230[o\bZ)
>>
endobj
3 0 obj
<<
/Type/XObject/Subtype/Image
/Name/wpt1
/Width 640
/Height 480
/BitsPerComponent 8
/ColorSpace/DeviceRGB
/Length 23713
/Filter [/FlateDecode/DCTDecode] >>
后,没有什么是纯文本。直到PDF被关闭。
有没有其他的方式来读取请求到我应该使用的内存或什么?
这件事情是它是多部分形式的数据,我不知道一种方法来隔离表示pdf的流的部分。 – Chronos
非常酷,这看起来是我需要的。谢谢! – Chronos