一般情况.图片是不直接存到数据库的.而只是存了图片的名称.
存放图片的文件夹路径一般是固定的.
所以这时你只需要从数据库拿出图片名称.直接在页面中这么写就OK了:
在上传的时候.首先当然是要判断上传文件是不是图片了.不建议去判断文件的后缀名.用这个方法:
if(this.myfile.PostedFile.ContentType.ToString().ToLower().IndexOf("image")<0){
//非图片文件
}
在对图片删除的时候.先去数据库里删除相关图片信息.然后再用:
System.IO.File.Delete(@"C:\ccc\ddd\eee.gif");
这里一定要用绝对路径.
上传图片到服务器上是网站开发中很常用的功能,它的实现也很简单,可以新建一个上传类UpLoadAndSaveImage,这个类中包含三个函数UpLoadAndSave,CreateFilePath,SaveToServer。使用时调用下面的UpLoadAndSave函数就可以了,该函数第一个参数为要上传的图片数据,第二个参数为上传的虚拟路径(相对路径),第三个参数为上传图片的格式,第四个参数为上传的物理路径。在这个函数中调用CreateFilePath函数产生随机的图片名称,最后再调用SaveToServer保存图片到服务器上。
publicstringUpLoadAndSave(byte[]data,refstringvirPath,stringfext,stringphysicPath)
{
//返回文件物理地址,修改虚拟地址
if(data==null||virPath==null||fext==null||physicPath=="")
{
thrownewException("非法参数");
}
stringrtnValue=SaveToServer(data,fext,physicPath,data.Length);
virPath+=rtnValue;
physicPath+=rtnValue;
returnphysicPath;
}
privatestringCreateFilePath(stringfext)
{
stringfilePath="";
Randomrd=newRandom();
filePath+=DateTime.Now.Year.ToString("0000");
filePath+=DateTime.Now.Month.ToString("00");
filePath+=DateTime.Now.Date.ToString("00");
filePath+=DateTime.Now.Hour.ToString("00");
filePath+=DateTime.Now.Minute.ToString("00");
filePath+=DateTime.Now.Second.ToString("00");
filePath+=DateTime.Now.Millisecond.ToString("00");
filePath+=rd.Next(99).ToString("00");
filePath+="."+fext;
returnfilePath;
}
privatestringSaveToServer(byte[]data,stringfext,stringphysicPath,intfileLen)
{
stringfilePath=CreateFilePath(fext);
stringrtnValue=filePath;
filePath=filePath.Insert(0,@physicPath);