我使用下面的代码来保存上传的图片和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");
}
}
答案 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);