我想要实现如下功能:上传图片,并把图片格式全部转换为jpg的,请问如何实现? 我写的代码如下,但总是抱错:“GDI+ 中发生一般性错误。”string fileContentType = FileUpload1.PostedFile.ContentType;
if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
{
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
string fileName = Guid.NewGuid().ToString()+file.Name; // 文件名称 string webFilePath = Server.MapPath("~/UploadFile/" + fileName); // 服务器端文件路径
if (!File.Exists(webFilePath))
{
try
{
FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件 Label1.Text = "提示:文件“" + fileName + "”成功上传";
picture.Value = "../UploadFile/" + fileName; #region //更改图片格式
System.Drawing.Image imgInFile = System.Drawing.Image.FromFile(webFilePath); switch (fileContentType)
{
case "image/bmp":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
case "image/pjpeg":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
case "image/gif":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
case "image/png":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
}
imgInFile.Dispose();
#endregion }
catch (Exception ex)
{
Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
}
}
else
{
//Label1.Text = "提示:文件已经存在,请重命名后上传";
Response.Write("<script>alert(\"此文件已经存在,请重新命名你的文件!\")</script>");
}
}
if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
{
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
string fileName = Guid.NewGuid().ToString()+file.Name; // 文件名称 string webFilePath = Server.MapPath("~/UploadFile/" + fileName); // 服务器端文件路径
if (!File.Exists(webFilePath))
{
try
{
FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件 Label1.Text = "提示:文件“" + fileName + "”成功上传";
picture.Value = "../UploadFile/" + fileName; #region //更改图片格式
System.Drawing.Image imgInFile = System.Drawing.Image.FromFile(webFilePath); switch (fileContentType)
{
case "image/bmp":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
case "image/pjpeg":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
case "image/gif":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
case "image/png":
imgInFile.Save(webFilePath, ImageFormat.Jpeg);
break;
}
imgInFile.Dispose();
#endregion }
catch (Exception ex)
{
Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
}
}
else
{
//Label1.Text = "提示:文件已经存在,请重命名后上传";
Response.Write("<script>alert(\"此文件已经存在,请重新命名你的文件!\")</script>");
}
}
解决方案 »
- 生成的静态页面在进行修改之后页脚后出现错误样式是怎么回事?
- 请教一个使用正则表格式过滤非法字符的问题
- gridview中怎样拖拽(drag and drop )单元格
- 在线等待!System.NullReferenceException: 未将对象引用设置到对象的实例!请各位帮忙!
- 很急的问题
- 在当前页面单击click事件后,response.redirect或server.trasfer到另一个页面时,会捕获到“线程正被中止”的错误,
- DataGrid的模板列问题?
- 如何引用OCX控件?急!
- 求助关于asp.net调试账户问题
- javascript读xml,动态生成dropdownlist碰到的问题?
- 管理员登录后在各个页面如何进行判断是否登录
- 问个母板页和内容页相互交互的问题,希望各位大哥大姐给于解决下,谢谢了.
string webFilePath = Server.MapPath("~/UploadFile/" + fileName); // 服务器端文件路径
if (!File.Exists(webFilePath))
{
try
{
FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件 #region //更改图片格式
System.Drawing.Image imgInFile = System.Drawing.Image.FromFile(webFilePath);
string newname = Guid.NewGuid().ToString() + ".jpg";
string newpath = Server.MapPath("~/UploadFile/"+newname); //创建新路径
switch (fileContentType)
{
case "image/bmp":
imgInFile.Save(newpath, System.Drawing.Imaging.ImageFormat.Bmp);
break;
case "image/pjpeg":
imgInFile.Save(newpath, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "image/gif":
imgInFile.Save(newpath, System.Drawing.Imaging.ImageFormat.Gif);
break;
case "image/png":
imgInFile.Save(newpath, System.Drawing.Imaging.ImageFormat.Png);
break;
}
imgInFile.Dispose();
File.Delete(webFilePath); //删除原来的文件
#endregion Label1.Text = "提示:文件“" + newname + "”成功上传";
picture.Value = "../UploadFile/" + newname; }
catch (Exception ex)
{
Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
}
}我的这些代码只是把上传文件名称改为*.jpg, 并没有真正实现格式转换,请问这是为什么?