将上传的文件转成二进制流, 然后再解析成文件保存,为什么文件损坏了。。 传输是 MemoryStream 并没有用到io 保存才io 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用windiff或者ultraedit比较下两个文件,看哪里的问题。 System.IO.MemoryStream fs = file.InputStream; 能转? 在你的fs.Read(buffer, 0, buffer.Length);下面加一句:fs.Seek(0, SeekOrigin.Begin);试试 byte[] bytes = br.ReadBytes((Int32)fs.Length); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Seek(0, SeekOrigin.Begin); fs.Close();没用,出来的文件还是损坏的 额 好像唯一的区别就是 :.\100吧主候选人.jpg different (E:\abc\100吧主候选人.jpg is more recent)但保存出来的文件确实是损坏的: 说明文件开头就没有写对。贴出UltraEdit显示的两个文件的开头一段。 确实不一样,Stream fs = file.InputStream; BinaryReader br = new BinaryReader(fs); byte[] bytes = br.ReadBytes((Int32)fs.Length); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close();这一步的问题? HttpPostedFile类里的内容 没办法直接转成二进制存在byte[]中么 难道必须要先保存下来,然后filestream读取这个文件才能转成二进制? using (Stream output = File.OpenWrite("c:\temp\file.zip")) using (Stream input = file.InputStream) { byte[] buffer = new byte[8192]; int bytesRead; while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, bytesRead); } }把上面的File.OpenWrite换成file.InputStreamhttp://stackoverflow.com/questions/12927932/file-upload-with-c-sharp-and-streaming 你去看看HttpWorkerRequest类吧,可以通过GetPreloadedEntityBody、ReadEntityBody方法在预加载阶段提前读取到客户端提交的数据,这里取出来的就是byte[],不过需要你自行从中分离出属于文件内容的部分 HttpFileCollection files = context.Request.Files; HttpPostedFile file = files[0]; int upPhotoLength = files.ContentLength; byte[] PhotoArray = new Byte[upPhotoLength]; Stream PhotoStream = files.InputStream; PhotoStream.Read(PhotoArray, 0, upPhotoLength); Excel导入时,需要“另存为”副本才能导入。 下载完后如何自动关闭窗口? 关于上传附件的问题,高手来下!!!!! 冰天雪地赤身裸跪,就同时刷新2个IFRAME的方法,答对有赏 简单的SQL查询的效率比较 在线文件管理,如何写到三层架构中? 关天ASP.NET的名字空间? 一个麻烦的sql语句。 关于GridView 循环添加列的问题 replace的一个难题, 求大家赐解! windows 2003 IIS6 ASP.NET操作文件夹无效 The underlying provider failed on Open
System.IO.MemoryStream fs = file.InputStream; 能转?
下面加一句:
fs.Seek(0, SeekOrigin.Begin);试试
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Seek(0, SeekOrigin.Begin);
fs.Close();没用,出来的文件还是损坏的
额 好像唯一的区别就是 :
.\100吧主候选人.jpg different (E:\abc\100吧主候选人.jpg is more recent)但保存出来的文件确实是损坏的:
Stream fs = file.InputStream;
BinaryReader br = new BinaryReader(fs);
byte[] bytes = br.ReadBytes((Int32)fs.Length);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
这一步的问题?
using (Stream output = File.OpenWrite("c:\temp\file.zip"))
using (Stream input = file.InputStream)
{
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
把上面的File.OpenWrite换成file.InputStreamhttp://stackoverflow.com/questions/12927932/file-upload-with-c-sharp-and-streaming
你去看看HttpWorkerRequest类吧,可以通过GetPreloadedEntityBody、ReadEntityBody方法在预加载阶段提前读取到客户端提交的数据,这里取出来的就是byte[],不过需要你自行从中分离出属于文件内容的部分
HttpPostedFile file = files[0];
int upPhotoLength = files.ContentLength;
byte[] PhotoArray = new Byte[upPhotoLength];
Stream PhotoStream = files.InputStream;
PhotoStream.Read(PhotoArray, 0, upPhotoLength);