0

我使用下面的代码来保存上传的图片和 makigna 缩略图,但它保存了一个没有数据库扩展名的文件名,因此,我得到了断开的链接。如何停止强类型数据集和数据适配器以停止删除文件扩展名?我的 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");
            }

        }
4

2 回答 2

0

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

c:\inetpub\pictures\c:\Users\用户名\图片\image1.jpg

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

于 2012-05-02T09:03:54.327 回答
0

使用它来获取图像或文件扩展名:

string Extension = System.IO.Path.GetExtension(FileUpload.FileName);
于 2012-05-02T09:11:38.907 回答