如何从asp.net中的FileUpload控件创建图像对象?
我有一个文件上传控件。我正试图保存上传的文件的图像,并保存文件的几个缩略图副本 当我尝试这样的事情时: System.Drawing.Image imgOriginal=System.Drawing.Image.FromStreamPhotoUpload.PostedFile.InputStream 我得到一个System.ArgumentException:参数无效 我还尝试使用PhotoUpload.FileBytes从文件字节而不是InputStream创建图像,但出现了相同的错误 上传的文件是一个jpg。我知道这是一个有效的jpg,因为它保存了原始的ok 编辑:这段代码确实有效。由于PhotoUpload.PostedFile.InputStream为空,参数无效。。。这似乎是一个完全不同的问题。看起来在我保存原始文件后,文件上传流消失了 编辑:发现文件上传的InputStream只能读取/使用一次,然后就消失了 为了解决这个问题,我将fileupload filebytes保存到一个字节数组中,并使用字节数组创建图像的副本 代码:如何从asp.net中的FileUpload控件创建图像对象?,asp.net,file-upload,Asp.net,File Upload,我有一个文件上传控件。我正试图保存上传的文件的图像,并保存文件的几个缩略图副本 当我尝试这样的事情时: System.Drawing.Image imgOriginal=System.Drawing.Image.FromStreamPhotoUpload.PostedFile.InputStream 我得到一个System.ArgumentException:参数无效 我还尝试使用PhotoUpload.FileBytes从文件字节而不是InputStream创建图像,但出现了相同的错误 上传的
看看这个链接 下面是我的函数调用: uploadAndSizeImageSystem.Drawing.Image.FromStream uploadedFileMD.PostedFile.InputStream 我得到了这个错误: 例外情况详情: System.ArgumentException:无效 使用的参数 虽然我觉得谷歌的搜索率不高 有没有找到它的参考资料 由流读取器引起的 在小溪的尽头和我 需要将其重置到位置1。 但这有点含糊,而且不是 真的确定它是否适用于这里 这有用吗 编辑: 另外,您是否尝试过使用类似的方法手动读取文件
System.IO.FileStream fs = System.IO.File.OpenRead(@"Image.JPG");
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
System.IO.MemoryStream ms = new System.IO.MemoryStream(data);
System.Drawing.Image image = Image.FromStream(ms);
或者从文件中保存临时副本上载并从文件中加载图像?与其尝试从流中打开文件,不如打开保存在磁盘上的物理文件?我不会将文件保存到文件系统。我通过web服务将其保存到另一台服务器。因此,我想传递web服务2文件:原始的这是工作正常和缩略图还没有工作。谢谢,这确实有帮助,虽然我现在的问题不是转换。我打电话时发现我的文件上传内容不见了。。。在我打这个电话之前,我把上传的文件保存起来,然后它就不见了。。。不确定这是否有意义。但是现在我需要弄清楚如何保存fileupload内容。
System.IO.FileStream fs = System.IO.File.OpenRead(@"Image.JPG");
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
System.IO.MemoryStream ms = new System.IO.MemoryStream(data);
System.Drawing.Image image = Image.FromStream(ms);