上传(upload)文件的codebehind代码
作者:eKiller
功能:
1。把图片文件(JPG GIF PNG)上传,
2。保存到指定的路径(在web.config中设置路径,以文件的原有格式保存),
3。并自动生成指定宽度的(在web.config中设置宽度)
4。和指定格式的(在web.config中指定缩略图的格式)
5。和原图比例相同的缩略图(根据宽度和原图的宽和高计算所略图的高度)
6。可以判断是否已经存在文件
7。如果不覆盖,则给出错误
8。如果选中"覆盖原图"checkbox,则覆盖原图。
9。可以根据要求,在webform上设置1个以上的file input和相应的checkbox
10。并在文件上传完毕后,显示原图的文件名,尺寸,字节,和
11。缩略图的文件名尺寸。
12。缩略图的文件名格式:原图+"_thumb."+指定格式,如:test.jpg_thumb.gif,以便于管理。--------------------
public void UploadFile(object sender, System.EventArgs e)
{string imgNameOnly, imgNameNoExt, imgExt;
string imgThumbnail;
int erroNumber = 0;
System.Drawing.Image oriImg, newImg;
string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString();
string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();
int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]);
string fileExt;StringBuilder picInfo = new StringBuilder();if(Page.IsValid)
{
for(int i = 0;i < Request.Files.Count; i++)
{
HttpPostedFile PostedFile = Request.Files[i];
fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower();imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
if(fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png")
{if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items[i].Selected == false))
{
erroNumber = erroNumber + 1;
picInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 已经存在,请修改文件名<br>" );
}
}
else
{
erroNumber = erroNumber + 1;
picInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 扩展名 " + fileExt + " 不被许可<br>" );
}}if(erroNumber > 0)
{
picInfo.Append("<font color=red>全部操作均未完成,请修改错误,再进行操作</font><br>");
}
else
{
for(int i = 0;i < Request.Files.Count; i++)
{HttpPostedFile PostedFile = Request.Files[i];
imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName);
imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower();
oriImg = System.Drawing.Image.FromStream(PostedFile.InputStream);
newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,new System.IntPtr(0));
switch(imgExt)
{
//case ".jpeg":
case ".jpg":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case ".gif":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Gif);
break;
case ".png":
oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Png);
break;
}//oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);switch(strFePicThumbFormat)
{
//jpeg format can get the smallest file size, and the png is the largest size
//case "jpeg":
case "jpg":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
break;
case "gif":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);
imgThumbnail = imgNameOnly + "_thumb.gif";
break;
case "png":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);
imgThumbnail = imgNameOnly + "_thumb.png";
break;
default:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
break;}//switchpicInfo.Append("<b>文件 名:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br>");
picInfo.Append("<b>缩略图名:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br><br>");oriImg.Dispose();
newImg.Dispose();}//for
picInfo.Append("<font color=red>所有操作成功</font><br>");}// if erronumber = 0}
else
{
picInfo.Append("<font color=red>有错误,请检查。操作未成功</font><br>");}lblPicInfo.Text = picInfo.ToString();}

解决方案 »

  1.   

    参考:
    http://dotnet.aspx.cc/ShowDetail.aspx?id=45E7E33C-F149-450E-B5D5-832958C20538
      

  2.   

    <%@ Page Language="c#" Debug="true" Trace="true"%>
    <%@ Import Namespace="System.IO" %>
    <%@ Import Namespace="System.Drawing" %>
    <%@ Import Namespace="System.Drawing.Imaging" %>
    <html>
    <script runat =server>
          void UploadBtn_Click(Object sender, EventArgs e) {
             String filename;
             String filename1;
             String[] filename2;
             int q;
             filename=UploadFile.PostedFile.FileName ;
             filename2=filename.Split(new Char[] {'\\'});
             q=filename2.GetUpperBound(0);
             filename1=filename2[q];
             dis.Text="上传文件名:"+filename1+"<br/>";
             UploadFile.PostedFile.SaveAs(Server.MapPath(filename1));
             ImageEditor.Visible = true;
             dis.Text+="文件大小:"+UploadFile.PostedFile.ContentLength+"字节数";
             Image1.Src=filename1;      
          } 
          void UpdateBtn_Click(Object sender, EventArgs e) {
            String filename1;
       filename1=Image1.Src;
       System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(filename1));
       System.Drawing.Image newimage = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppRgb);
       Graphics g = Graphics.FromImage(newimage);
       g.DrawImage(image,0,0,image.Width,image.Height);
       Font f = new Font(FontType.SelectedItem.Text, Int32.Parse(FontSize.SelectedItem.Text));
       Brush b = new SolidBrush(Color.Red);
       g.DrawString(Caption.Text, f, b, 10, 140);
       g.Dispose();
       //System.Drawing.Image thumbImage = newimage.GetThumbnailImage(Convert.ToInt32(Width.Text),Convert.ToInt32(Height.Text),null,0);
       image.Dispose();
      // thumbImage.Save(Server.MapPath(filename1), ImageFormat.Jpeg);
       Image1.Src=filename1;       
       Caption.Text="";     
          }   </script>   <body>
      

  3.   

    <asp:label id="dis" runat=server/>
         <form enctype="multipart/form-data" runat=server>          <h3>          Select File To Upload: <input id="UploadFile" type=file runat=server>          <asp:button Text="Upload Me!" OnClick="UploadBtn_Click" runat=server/>          <hr>
          
              <asp:panel id="ImageEditor" Visible=false runat=server>             <img ID="Image1" src="" runat="server"/>             <h3>
                    Image Width: <asp:textbox id="Width" runat=server/>                 Image Height: <asp:textbox id="Height" runat=server/> <br/>                 Text Caption: <asp:textbox id="Caption" runat=server/>                 Caption Size: <asp:dropdownlist id="FontSize" runat=server>
                                             <asp:listitem>14</asp:listitem>
                                             <asp:listitem>18</asp:listitem>
                                             <asp:listitem>26</asp:listitem>
                                             <asp:listitem>36</asp:listitem>
                                             <asp:listitem>48</asp:listitem>
                                             <asp:listitem>62</asp:listitem>
                                          </asp:dropdownlist>
                     Caption Font: <asp:dropdownlist id="FontType" runat=server>
                                             <asp:listitem>黑体</asp:listitem>
                                             <asp:listitem>仿宋</asp:listitem>
                                             <asp:listitem>隶书</asp:listitem>
                                             <asp:listitem>楷书</asp:listitem>
                                             <asp:listitem>方正姚体</asp:listitem>
                                             <asp:listitem>华文彩云</asp:listitem>
                                          </asp:dropdownlist>
                                                    
                     <asp:button Text="Update Image" OnClick="UpdateBtn_Click" runat=server/>             </h3> 
              </asp:panel>      </form>   </body>
    </html>
      

  4.   

    http://www.knowsky.com/3292.html大概原理!