上传图片产生缩略图后存到数据库里,运行正常,可显示的时候显示* ,并且产生的图片很大 不知道为什么是不是 存的格式不对 
我的代码
---------------------
HttpPostedFile upImage=IF1.PostedFile;
ImageLength=upImage.ContentLength;
m_width=100;
m_height=100;

if(ImageLength==0)
{
lmessage.Text="请您选择要上传的文件";
}
else
{
Byte[] Ba=new byte[ImageLength];
Stream objStream= upImage.InputStream;
System.Drawing.Image obj = System.Drawing.Image.FromStream(objStream);

obj.GetThumbnailImage(m_width,m_height,null,IntPtr.Zero);
MemoryStream ms=new MemoryStream();
                obj.Save(ms,ImageFormat.Gif);
                obj.Dispose();

ms.Read(Ba,0,ImageLength);

upImages objImage=new upImages();
objImage.Content=tContext.Text;
objImage.Data=Ba;
objImage.Title=tBh.Text;
objImage.Type="image/gif";
objImage.Size=upImage.ContentLength;
objImage.AddImage();
lmessage.Text="操作成功";
}

解决方案 »

  1.   

    你这是生成缩略图吗?我的是VB的给你参考
      '//图象上传和生成缩略图
            Public Function imgup(ByVal upfile As System.Web.UI.HtmlControls.HtmlInputFile)
                '返回的结果
                Dim res As Integer
                '原始图象保存目录
                Dim filesavepath As String = "img"
                '缩略图保存目录
                Dim sfilesavepath As String = "simg"
                Dim bimg, simg As System.Drawing.Image
                '缩略图保存大小
                Dim swidth As Integer = 120
                Dim sheight As Integer = 90
                '文件保存类型
                Dim filetype As String = ".jpg,.bmp,.gif"
                '允许上传最大大小
                Dim maxfilesize As Int32 = 1024 * 300
                '上传文件大小
                Dim filesize As Integer = upfile.PostedFile.ContentLength
                '文件扩展名   
                Dim filefullname As String = upfile.PostedFile.FileName
                Dim i As Integer = filefullname.LastIndexOf(".")
                Dim fileextension As String = filefullname.Substring(i)
                '新的文件名
                Dim newfilename As String = DateTime.Now.Year.ToString() & DateTime.Now.Month.ToString() & DateTime.Now.Day.ToString() & DateTime.Now.Minute.ToString() & DateTime.Now.Second.ToString()
                Try
                    If filetype.IndexOf(fileextension) = -1 Then
                        res = -1
                    Else
                        If filesize > maxfilesize Then
                            res = 0
                        Else
                            '保存文件
                            upfile.PostedFile.SaveAs(Server.MapPath(filesavepath & "/" & newfilename & fileextension))
                            '生成缩略图
                            bimg = System.Drawing.Image.FromFile(Server.MapPath(filesavepath & "/" & newfilename & fileextension))
                            simg = bimg.GetThumbnailImage(swidth, sheight, Nothing, (New IntPtr).Zero)
                            simg.Save(Server.MapPath(sfilesavepath & "/" & newfilename & fileextension), System.Drawing.Imaging.ImageFormat.Jpeg)
                            simg.Dispose()
                            bimg.Dispose()
                            '加入session
                            Session("upfile") = newfilename & fileextension
                            res = 1
                        End If
                    End If
                Catch ex As Exception
                    res = 2
                End Try
                Return res
            End Function
      

  2.   

    是的 只不过我把连接库的部分做成控件了,控件好用,我没改成上传缩略图图的时候测试过, 可改成缩略图了 就显示*了,
    关键是 这里“obj.Save(ms,ImageFormat.Gif);”
    设置了 固定格式后,在怎么给控件传递文件格式是 用“objImage.Type="image/gif";”吗?另外你给我的是传到目录里的 ,不是传到库里的
      

  3.   

    上传时图片可以改大小,图上写字
     hp.q 发表于 2000-11-23 16:28:36 .NET技术 ←返回版面         [快速返回] <%@ 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(Int32.Parse(Width.Text),Int32.Parse(Height.Text),null,0);
             image.Dispose();
             thumbImage.Save(Server.MapPath(filename1), ImageFormat.JPEG);
             Image1.Src=filename1;       
             Caption.Text="";     
       
          }   </script>   <body>
       <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.   

    大哥看清了啊 我是传到库里
    关键是 这里“obj.Save(ms,ImageFormat.Gif);”
    设置了 固定格式后,在怎么给控件传递文件格式是 用“objImage.Type="image/gif";”吗?