我用VS2003(VB)做了一个上传图片的功能,现在问题是,我在本地调试时候 uploadfile.PostedFile.SaveAs(Server.MapPath("../image/") & "XXX.jpg")这句中filepath解析后是:C:\inteput\wwwroot\image\XXX.jpg。我服务器根目录是/fqueen.我的所有文件放在这个根目录下边的。那我的上传语句该怎么写啊,我现在给路径搞晕了!
====================================================================
以下我上传部分代码:
Dim filename, filepath As String
If uploadfile.Value <> "" Then
filename = Path.GetFileName(uploadfile.value) '源图片文件名
filepath = Server.MapPath("../image/") & dl1.SelectedValue & "/" & filename '上传路径
uploadfile.PostedFile.SaveAs(filepath) ----->'这句代码出错了。
。。。。。。。。。。。。。。。。。。。。。。
====================================================================
希望有人能帮我解答这个问题,谢谢了!!!
================================================================
上边可能说得不很清楚我给个例子:
假如我的网站的根目录是: /fqueen
在它下边有个image文件夹(上传图片存放的位置),如图:
在web_eng里边有个上传页面upload.aspx.
现在想在点击上传页面upload.aspx,将图片上传到image文件夹里边去。代码应该怎么写呢?请指教!!!
如果我的上传页面upload.aspx在其他文件夹里边,那上传路径是不是也一样的呢??
=================================================================================
filepath = Server.MapPath("~")&"/image/"& dl1.SelectedValue & "/" & filename '上传路径 ,这样即使是把网站放在虚拟目录下页没问题
你只要记住一点:Server.MapPath()方法是获取你服务器上你存放文件的物理地址,假如你把网站根目录指向d:\wwwroot\fqueen,那么就可以通过 Server.MapPath("~")的方法获得你的这个根目录。
当然也可以用HttpContext.Current.Request.MapPath()的方法,不过要注意路径。
补充:
======================================
即使你的upload.aspx在web_eng下(web_eng/upload.aspx),使用上面的方法也一样的,因为filepath = Server.MapPath("~")&"/image/" 就是指向你的服务器物理地址:d:\wwwroot\fqueen\images 的,所以无论你将upload.aspx文件放在什么目录下,上传文件的路径都是正确的。
path = HttpContext.Current.Request.MapPath("~/upFile/");//获取当前网站路径
FileUpload1.SaveAs(path + FileUpload1.FileName);//将文件保存到 我所建的网站的路径下。
++++++++++++++++++++++++++++
string path=HttpContext.Current.Request.MapPath("~/upFile/");//这个就是比如你那个bin文件夹。你的图片 image文件夹
你上传这样 saveas(path+"文件名");