aspnetupload上传文件问题
我在本地服务器上面上传文件没有问题,但是当我把程序上传到租的虚拟空间时,网站显示“D:\hosting\wwwroot\ffdm_com_cn\htdocs\Extranet/PDF/5_CYXX/Celebration.rar未能找到路径“D:\”的一部分。”错误提示,请问是什么问题呢? --------------------编程问答-------------------- 很明显的路径出错问题,你慢慢调试下那段路径的代码,应该是反斜杠 --------------------编程问答--------------------怎么又是正斜杠又是反斜杠的?
在代码中要尽量使用相对路径,而不要用硬编码。 --------------------编程问答-------------------- 把你的代码贴出来看下咯。
是路径的问题啦。/ --------------------编程问答-------------------- Server.MapPath("~/");
--------------------编程问答--------------------
ding --------------------编程问答-------------------- string fileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
UploadFile1.SaveAs(Server.MapPath("~/PDF/5_CYXX/" + fileName ); --------------------编程问答-------------------- 我用的是第三方的aspnetupload,不是.net自带的上传组件,我下载的是一个免费版,只能上传10M,我发现这个组件只能设定成绝对物理路径,不能用~/等之类的,在公司的服务器上面没有问题,路径问题我也检查过,不管怎样都会出现“未能找到路径“D:\”的一部分”这个错误,不知道是不是虚拟空间的服务器上面的权限问题,没有权限访问D:\下面的目录? --------------------编程问答-------------------- 其实这就“对了”,就是需要这种锻炼。你在本地上写的应用程序越早拿到实际的服务器上去,越早提高编程知识。许多时候,编程不是靠闷头使用所谓的“个人积累”来保证编程,而是靠一种敏捷发布软件的做事风格才能保证产品开发过程中不走弯路。 --------------------编程问答--------------------
如果每个人都按自子的想法去读写服务器上的文件,你网站不但会被别人“无意中”读取、而且会被随时覆盖或者删除。
所以asp.net应用程序应该把数据文件保存在自己的app_data目录下(并且这个目录下的子目录操作不会引起asp.net应用程序重启)。如果服务商提供给每一个网站一个另外的目录,例如给网站目录上一级下面另外建立了databases子目录,则数据文件才可以保存为 MapPath("~/../database/xxxxxx") 这样的地方。
你的控件不知道。是正规的公司出的么? --------------------编程问答-------------------- 哦当然,编程中是可以使用文件路径的,而不是http的url。
比如在网站上一层的database目录下的文件abc.dat,那么就写 ..\databases\abc.dat。
默认地,文件的路径的起始地址就是asp.net网站的地址,比如你将asp.net网站发布在某个虚拟目录下那么就是这个虚拟目录对应的物理目录。
在你设计程序时,就要预先想到这一层,不要想当然地去以为服务器上一定有D盘。 --------------------编程问答-------------------- 谢谢大家的帮助,我是在这个网站下面下载的:http://www.aspnetupload.net/ --------------------编程问答-------------------- 我们的客户通常采用自建服务器或服务器托管,以下是我们的HTTP上传部署方案:
1.创建操作文件的用户例如:datamanager,设密码,隶属、且仅仅隶属于user组
2.建立共享文件夹例如:DataUpload,
分配给datamanager完全控制的本地权限和完全控制的共享权限,
删除默认分配给user的共享权限;
3.在web站点下创建虚拟路径如:DataStorage,
如果是本地的就创建本地路径,
如果是其他计算机的就选择“另一台计算机上的共享”,并输入datamanager及其密码;
4.本地共享文件夹就是上传路径;虚拟路径就是下载路径
5.这样做保证了服务器文件系统(尤其是上传路径)的安全;
关于虚拟服务器的文件系统的HTTP上传的技术问题,建议你先致电服务提供商的技术服务人员咨询一下,
我们的方案不一定能帮得了楼主,但是我觉得思路可供参考,“隔离”思想几乎是解决任何稍微复杂一点的问题的法宝 --------------------编程问答-------------------- 用绝对路径是肯定不行的
--------------------编程问答-------------------- 其实我的路径是这样写的:
string path=“~\Extranet/PDF/5_CYXX/”
path=HttpContext.Current.Request.MapPath(path);
跟服务商联系之后说有可能是权限问题,但是他们调整了之后还是一样的错误:未能找到路径“D:\”的一部分
补充:.NET技术 , C#