将字符串文件名添加到数据库时,ado.net查询会删除文件扩展名

时间:2012-05-02 08:18:14

标签: asp.net .net sql-server ado.net dataset

我使用下面的代码来保存上传的图片和makigna缩略图,但它保存了一个没有扩展名的文件名到数据库,因此,我得到了断开的链接。如何停止强类型数据集和dataadapter以停止删除文件扩展名?我的nvarchar字段有nvarchar(max),所以问题不是字符串长度。

我意识到我的问题是数据集列中的maxsize,而不是sql语句参数,所以我修复了它。你可以投票决定关闭这个问题。

hasTableAdapters.has_actorTableAdapter adp1 = new hasTableAdapters.has_actorTableAdapter(); 
            if (Convert.ToInt16(adp1.UsernameExists(username.Text)) == 0)
            {
                adp1.Register(username.Text, password.Text, 
                    ishairdresser.Checked, city.Text, address.Text);

                string originalfilename = Server.MapPath(" ") + "\\pictures\\" + actorimage.PostedFile.FileName;
                string originalrelative = "\\pictures\\" + actorimage.FileName;
                actorimage.SaveAs(originalfilename);
                string thumbfilename = Server.MapPath(" ") + "\\pictures\\t_" + actorimage.PostedFile.FileName;
                string thumbrelative = "\\pictures\\t_" + actorimage.FileName;
                Bitmap original = new Bitmap(originalfilename);
                Bitmap thumb=(Bitmap)original.GetThumbnailImage(100, 100, 
                    new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback),
                    IntPtr.Zero);
                thumb=(Bitmap)original.Clone(
                    new Rectangle(new Point(original.Width/2,original.Height/2), new Size(100,100)),
                    System.Drawing.Imaging.PixelFormat.DontCare);
                /*
                  bmpImage.Clone(cropArea,bmpImage.PixelFormat);
                 */
                thumb.Save(thumbfilename);
                adp1.UpdatePicture(originalrelative, thumbrelative, username.Text);
                LoginActor();
                Response.Redirect("Default.aspx");
            }

        }

2 个答案:

答案 0 :(得分:0)

看起来问题是您正在使用HttpPostedFile.FileName属性,该属性在客户端上返回完全限定的文件名。因此,此代码string originalfilename = Server.MapPath(" ") + "\\pictures\\" + actorimage.PostedFile.FileName;生成如下内容:

  

C:\的Inetpub \图片\ C:\ Users \用户名\图片\ image1.jpg

在任何地方使用FileUpload.FileName属性,你可能会得到你想要的东西。

答案 1 :(得分:0)

使用此方法获取图片或文件扩展名:

string Extension = System.IO.Path.GetExtension(FileUpload.FileName);