如果下载了图像,上传和调整大小的图像将不会在图像编辑器工具中打开
本文关键字:图像 编辑器 工具 下载 调整 如果 | 更新日期: 2023-09-27 18:24:05
上传图像后,我使用以下代码调整图像大小。函数会重新调整图像大小并在不更改文件扩展名的情况下用新名称保存它们,图像在所有主要浏览器上都能完美显示。
问题是只有当有人下载图像并尝试用任何图像编辑器(如Fireworks或Photoshop)打开它时,它才会出现以下错误
错误:*无法打开文件。未知的文件类型*
我不知道它为什么会出现那个错误。
调整图像大小的功能
public static void ResizeImageInput(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
{
System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(OriginalFile);
// Prevent using images internal thumbnail
FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
if (OnlyResizeIfWider)
{
if (FullsizeImage.Width <= NewWidth)
{
NewWidth = FullsizeImage.Width;
}
}
System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(NewWidth, MaxHeight, null, IntPtr.Zero);
// Clear handle to original file so that we can overwrite it if necessary
FullsizeImage.Dispose();
// Save resized picture
NewImage.Save(NewFile);
}
上传图像的功能
protected void btnArticlePageImage_Click(object sender, EventArgs e)
{
try
{
String filePath = string.Empty;
String CurrentGUID = Guid.NewGuid().ToString();
if (FileUpload2.HasFile)
{
string filename = System.IO.Path.GetFileName(FileUpload2.FileName);
System.IO.FileInfo f = new System.IO.FileInfo(FileUpload2.PostedFile.FileName);
double fileSize = (double)FileUpload2.FileBytes.Length;
if (fileSize < 1024000) // 1 MB current size size in bytes 102400=100kb 512000 = 500kb
{
if ((f.Extension.ToLower() == ".jpg") || (f.Extension.ToLower() == ".png") || (f.Extension.ToLower() == ".gif") || (f.Extension.ToLower() == ".jpeg"))
{
filename = CurrentGUID + f.Extension;
//string productGUID
filePath = Server.MapPath("../ImagesArticles/") + filename;
if (System.IO.File.Exists(filePath))
{
return;
}
else
{
//Upload files
FileUpload2.PostedFile.SaveAs(Server.MapPath("../ImagesArticles/") + filename);
//objPages.PageBannerImageEn = filename;
Session["ArticleLargeImage"] = filename.ToString();
string errMsg = "File Uploaded Successfully";
lblImageUploadMessage1.Text = errMsg;
// ResizeImage(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
Helper.ResizeImage(filePath, filePath, 150, 80, true);
}
return;
}
else
{
string errMsg = "File must be an Image type of .jpg, .png, .gif, .jpeg";
//client-side error
lblImageUploadMessage1.Text = errMsg;
return;
}
}
else
{
string errMsg = "File size is greater the 1MB";
//client-side error
lblImageUploadMessage1.Text = errMsg;
return;
}
}
else
{
//lblMesg.Text = "Only type .jpg, .png, .gif are allow";
string errMsg = "Cant Upload File due to some error";
//client-side error
lblImageUploadMessage1.Text = errMsg;
return;
}
}
catch (Exception ex)
{
Response.Write("ERROR MESSAGE : " + ex.Message.ToString());
}
}
顺序:用户可以上传JPG、GIF、PNG等类型的图像。我只使用GUID重命名图像,并保持图像扩展名不变,然后将其保存在web服务器上。之后,我重新调整图像的大小以备以后使用。
这些重新调整大小的图像在所有浏览器中都能正常工作,但唯一的问题是,如果有人下载这些图像进行编辑,它就不会在任何图形编辑器工具中打开。
它给出了一个常见的错误信息,如问题的第一部分所述。
尝试添加要保存的图像格式,这是用于gif图像
NewImage.Save(NewFile, System.Drawing.Imaging.ImageFormat.Gif);