asp.net 上传图片并同时生成缩略图的代码

时间:2021-05-28

复制代码 代码如下:
<%@ Page Language="C#" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<script runat="server">
 
void Page_Load(Object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ImgPreview.Visible = false;
}
}
void GetThumbnailImage(int width, int height, string strInfo, int left, int right)
{
string file = "Uploads/" + uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\') + 1);
string newfile = "Uploads/" + uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\') + 1) + ".jpg";
string strAdd = strInfo;
System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(file));
System.Drawing.Image thumbnailImage =
oldimage.GetThumbnailImage(width, height, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
Response.Clear();
Bitmap output = new Bitmap(thumbnailImage);
Graphics g = Graphics.FromImage(output);
g.DrawString(strAdd, new Font("Courier New", 14), new SolidBrush(Color.Red), left, right);
output.Save(Server.MapPath(newfile), System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ContentType = "image/gif";
ImgPreview.Visible = true;
ImgPreview.ImageUrl = newfile;
}
bool ThumbnailCallback()
{
return true;
}
void Button_Click(object sender, EventArgs e)
{
int width, height, left, right;
string strAddInfo = txtAddInfo.Text;
width = Int32.Parse(txtWidth.Text);
height = Int32.Parse(txtHeight.Text);
left = Int32.Parse(txtLeft.Text);
right = Int32.Parse(txtRight.Text);
if (!(uploadFile.PostedFile.ContentLength > 0))
{
lblErrInfo.Text = "没有选择文件";
}
else
{
string path = Server.MapPath("./Uploads/" + uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\') + 1));
if (File.Exists(path))
{
lblErrInfo.Text = "已经有同名文件";
}
else
{
uploadFile.PostedFile.SaveAs(path);
GetThumbnailImage(width, height, strAddInfo, left, right);
}
}
}
</script>
<html xmlns="http://mand.executereader()
  if myReader.Read() then
  id=myReader("id")
  end if
  myconn.close()
  "保存图片
  FileUp.PostedFile.SaveAs( Server.MapPath("\classpic\")&cstr(id)&".jpg" )
  "生成缩略图
  image=System.Drawing.Image.FromFile(Server.MapPath("/classpic/"+cstr(id)+".jpg"))
  width=image.Width
  height=image.height
  if width>height then
  newwidth=250
  newheight=image.height/image.Width*newwidth
  else
  newheight=250
  newwidth=image.Width/image.height*newheight
  end if
  response.write("id="+cstr(id)+"width="+cstr(Width)+";height="+cstr(height)+" ")
  response.write("newwidth="+cstr(newwidth)+";newheight="+cstr(newheight)+"<br>")
  aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,new System.IntPtr())
  aNewImage.Save(Server.MapPath("/smallpic/"+cstr(id)+".jpg"))
  image.Dispose()
  Dim FileSplit() As String = Split( FileUp.PostedFile.FileName, "\" )
  Dim FileName As String = FileSplit(FileSplit.Length-1)
  Dim Exts() As String = Split( FileName, "." )
  Dim Ext As String = LCase(Exts(Exts.Length-1))
  FDisplay.Text = "<A Target="_blank" HREF="/classpic/"&cstr(id)&".jpg"& "">查看上传文件</A>"
  FDisplay1.text="<a href="/picture/default.asp?bj="&cstr(request.cookies("dgxyl").values("dgxylbj"))&"">返回</a>"
  End Sub
  </script>
  <SCRIPT language=JavaScript>
  <!--
  var requestsubmitted=false;
  function guestbook_Validator(theForm)
  {
  //检查是否从新提交
  if (requestsubmitted==true){
  alert("你已经提交了留言,请等待服务器应答!");
  return(false);
  }
  requestsubmitted=true;
  return (true);
  }
  //-->
  </SCRIPT>
<Html>
  <Body BgColor=White>
  <H3 align="center">请正确填写下面各项</h3>
  <Hr></H3>
  <Div id="FileInfo" Visible="False" runat="server">
  <Asp:Label id="FSize" runat="server"/><br>
  <Asp:Label id="FName" runat="server"/><br>
  <Asp:Label id="FDisplay" runat="server"/>
  <Asp:Label id="FDisplay1" runat="server"/>
  </Div>
  <Form Enctype="multipart/form-data" onsubmit="return guestbook_Validator(this)" runat="server">
  上传文件
  <Input Type="File" id="FileUp" runat="server" size="20"><br>
  图片属性:<input type="radio" value="<%=request.cookies("dgxyl").values("dgxylbj")%>" name="R1" checked>本班<input type="radio" value="全  校" name="R1">全校(本班则只在本班显示,全校则在全校显示)<P>
  图片说明:<br>
  <asp:TextBox id="TextBox1" runat="server" Width="233px" Height="141px">
  </asp:TextBox>
  <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="请输入图片说明">
  </asp:RequiredFieldValidator><br>
  <Asp:button id="Upload" OnClick="UploadFile" Text="上传图片" runat="server"/>
  </form>
  <Hr>
  <p>注意:</p>
  <ol>
  <li><b>严禁上传污染环境的照片,否则账号将被删除!</b></li>
  <li><font color="#808000"><b>请详细填写照片说明,图片说明不详细将会被视为乱传图片,将会被删除!</b></font></li>
  </ol>
  </Body>
  </Html>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章