Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从asp.net中的FileUpload控件创建图像对象?_Asp.net_File Upload - Fatal编程技术网

如何从asp.net中的FileUpload控件创建图像对象?

如何从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创建图像,但出现了相同的错误 上传的

我有一个文件上传控件。我正试图保存上传的文件的图像,并保存文件的几个缩略图副本

当我尝试这样的事情时:

System.Drawing.Image imgOriginal=System.Drawing.Image.FromStreamPhotoUpload.PostedFile.InputStream

我得到一个System.ArgumentException:参数无效

我还尝试使用PhotoUpload.FileBytes从文件字节而不是InputStream创建图像,但出现了相同的错误

上传的文件是一个jpg。我知道这是一个有效的jpg,因为它保存了原始的ok

编辑:这段代码确实有效。由于PhotoUpload.PostedFile.InputStream为空,参数无效。。。这似乎是一个完全不同的问题。看起来在我保存原始文件后,文件上传流消失了

编辑:发现文件上传的InputStream只能读取/使用一次,然后就消失了

为了解决这个问题,我将fileupload filebytes保存到一个字节数组中,并使用字节数组创建图像的副本

代码:


看看这个链接

下面是我的函数调用:

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);