У меня есть вход для файла в asp.net. Я хочу получить изображение, отобразить миниатюру и сохранить его. Вот aspx ...Преобразование изображения в миниатюру и сохранение его
form id="form1" runat="server" enctype="multipart/form-data">
<div>
<input type="file" runat="server" />
<br />
<asp:Button runat="server" ID="btn_upload" OnClick="btn_upload_Click" Text="Upload" />
<br />
<asp:Image ID="image_placeholder" runat="server" Visible="false" />
</div>
</form>
И вот код C# позади. Я могу получить изображение для отображения, мне просто трудно сэкономить его.
var postedFile = httpRequest.Files[file];
string fileName = postedFile.FileName;
if (fileName != "")
{
Stream fs = postedFile.InputStream;
System.Drawing.Image image = System.Drawing.Image.FromStream(fs);
using (System.Drawing.Image thumbnail = image.GetThumbnailImage(100, 100, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero))
{
using (MemoryStream memoryStream = new MemoryStream())
{
thumbnail.Save(memoryStream, ImageFormat.Png);
Byte[] bytes2 = new Byte[memoryStream.Length];
memoryStream.Position = 0;
memoryStream.Read(bytes2, 0, (int)bytes2.Length);
string base64String = Convert.ToBase64String(bytes2, 0, bytes2.Length);
image_placeholder.ImageUrl = "data:image/png;base64," + base64String;
image_placeholder.Visible = true;
var desktopFolder = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
thumbnail.Save(desktopFolder, System.Drawing.Imaging.ImageFormat.Png);
}
}
Ошибка я получаю «общая ошибка ocurred в GDI +» ли я считать, что это потому, что я звоню два thumbnail.Save
В любом случае, изображение отображается нормально, это просто проблематично, когда его на самом деле экономит его.
Возможно, проблема связана с правами на сохранение вашей учетной записи сервера iis. – Carra
Прямо сейчас я просто запускаю его из своей локальной среды разработчиков, пытаясь сохранить его на своем рабочем столе – prawn