本人初学.NET,很多不懂,希望多多指教:前端通过<form>提交一张图片:<span class="file2"><input type="file" size="1" maxlength="0" hidefocus="true" ectype="change_avatar" name="picture2" /></span>我想将所提交的图片保存在某目录下,并将该目录存进数据库中。我用HttpPostedFile接收图片,HttpPostedFile PictureContent = (HttpPostedFile)this.Request.Files["picture2"];并用绝对路径保存:PictureContent.SaveAs(PictureFullName);但是一旦采用绝对路径,把网站放在不同的目录下,就要修改“PictureFullName”,很麻烦。问题:用什么类(方法)把它用“相对路径”存起来?如果行的话,也可以不用接收图片的类HttpPostedFile。在网络找半天,也没有找到合适的啊。图片类网络数据库.NET
PictureFullName=Server.MapPath("images")+"\\"+文件名.扩展名
images为项目中存放上传图片的文件夹相对路径
然后在你的数据库中保存 PictureContent.Name 即可。当asp.net重新部署时,你都是把这个网站迁移,这就包括app_data。不管放到web server的哪一级虚拟目录下(或者根下),这个 PictureFullName 的计算都会正确。
string VirtualPath = HttpRuntime.AppDomainAppVirtualPath;