62,046
社区成员
发帖
与我相关
我的任务
分享
protected void btn_import_Click(object sender, EventArgs e)
{
RadAjaxManager1.Alert("aaaaaaaa");
string path = Path.GetFullPath(FileUpload_File.PostedFile.FileName);
}
为何不用javascript直接获取文件名?
如果你用你的桌面程序开发,不但可以有很好、很高级的用户体验(例如支持用户鼠标拖放、甚至“摇一摇”就上传当前正在打开查看的文件),而且可以有很好的上传性能(例如将文件参数给服务器的时候,可能服务器直接就能把过去传过的相同内容但是名字不同的文件(或者文件磁盘块)直接复制就好了,而不需要客户端再上传了。这样你的上G的文件也可以“秒传”)。 做桌面程序是很好的。那些用一个web页面嵌入的假c/s程序,基本上全都无法经得起性能测试和(熟练)用户操作体验的要求。
当你的服务器端的asp.net代码运行时,客户端的<form>早就上传完毕了,也就是说FileUpload中的文件早就传送到服务器了。而不是什么“只获取文件名而不真正的上传文件”。你可以不去保存文件,但是文件必须先传送到服务器。 另外,规范的html是不允许上传客户端的文件路径的(只能上传文件名)。你那种想法,只能适应7、8年前的IE6、IE7而以,其它浏览器都不支持。
不能。 以安全角度来说,用户电脑对服务器来说是个黑箱,用户要上传文件,那么文件内容和文件名就足够了,实在难以想象还有什么正常的场景需要文件的完整路径。(某些人还企图在代码里指定上传的文件,也一样是不允许的)特别是互联网场景。 如果是企业内部应用,如果真的有这个需求,可以考虑使用ActiveX控件来实现文件上传之类的功能。