我正在尝试将一张图像调整为 5 种不同的尺寸(然后将它们上传到 amazonS3)。
我正在使用 imageresizer.net
问题似乎是我不能使用输入流两次。第一次就可以了。
Dim SmallStream As Stream = New MemoryStream
Dim TinyStream As Stream = New MemoryStream
If FileUpload1.HasFile Then
**ImageResizer.ImageBuilder.Current.Build(FileUpload1.PostedFile.InputStream, SmallStream, New ResizeSettings("maxwidth=100&maxheight=100"))
ImageResizer.ImageBuilder.Current.Build(FileUpload1.PostedFile.InputStream, TinyStream, New ResizeSettings("maxwidth=100&maxheight=100"))**
AmazonUploadFile("SmallImages/" & FileUpload1.FileName, SmallStream)
AmazonUploadFile("TinyImages/" & FileUpload1.FileName, TinyStream)
End If
Public Shared Function GetS3Client() As AmazonS3
Dim appConfig As NameValueCollection = ConfigurationManager.AppSettings
Dim s3Client As AmazonS3 = AWSClientFactory.CreateAmazonS3Client(AWS_ACCESS_KEY, AWS_SECRET_KEY)
Return s3Client
End Function
Public Sub AmazonUploadFile(S3Key As String, FileStream As Stream)
Dim request As New PutObjectRequest()
request.WithBucketName(BUCKET_NAME)
request.WithKey(S3Key).InputStream = FileStream
request.WithCannedACL(S3CannedACL.PublicRead)
GetS3Client.PutObject(request)
End Sub
当我第二次尝试检索 FileUpload1.PostedFile.InputStream
时,代码中断。
最佳答案
我相信 ImageResizer 会接受该方法的 Image 对象。因此,您可以先将 InputStream 读入 Image 对象 (Image.FromStream()),然后您可以重复使用该图像对象。
关于asp.net - 使用 PostedFile.InputStream 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9807644/