input type="file" 上传文件问题

英文字母打字员 2012-09-27 10:39:32
input type="file" 在IE8 Request.Files[].FileName 里面可以取到 如D://123.Txt 这样子的全路径
而在IE9中只可以取到123.Txt

现在解决办法是:internet选项>安全>自定义级别>将上传带上路径勾选,这样的做的话,每台机器在使用上传功能的时候就必须去操作IE。

求解决的是: 我怎么不通过IE设置,获取上传文件的全路径(D://123.Txt )
...全文
652 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
挨踢小伙 2012-10-16
  • 打赏
  • 举报
回复
怎么解决的,说下呗
挨踢小伙 2012-10-16
  • 打赏
  • 举报
回复
还是不明白,得不到绝对路径,怎么上传?
e251396 2012-09-28
  • 打赏
  • 举报
回复
function getPath(obj) {
if (obj) {
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select();
return document.selection.createRange().text;
}
else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if (obj.files) {
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}

var upfile = getPath(document.getElementById("uploadnewsPic"));
我是这样的就能正常取到路径,也能正常上传
aspnet_2012 2012-09-28
  • 打赏
  • 举报
回复
敢不敢贴贴关键代码啊,让大家学习一下呗!

[Quote=引用 34 楼 的回复:]

引用 33 楼 的回复:

客户在浏览页面的时候,是已经在B上面了

这是完全错误的,谁教给你的?

客户在浏览页面的时候,是已经在B上面了,2台机器相差多远都不知道,怎么会在B上了?

不要拿你自己的机器既当客户端,又当服务器去测试!


其实我已经找到解决办法了,可以解决了,谢谢孟子一天的回复。
[/Quote]
孟子E章 2012-09-27
  • 打赏
  • 举报
回复
文件放到FTP服务器上去?

那也是要Web服务器上的物理路径啊,跟客户端路径有什么关系啊
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

上传的话,楼主是不是想获得上传文件的全名,然后把全名和服务器上的名称进行关联?如果是这样的话,不用要路径的啊,只需要服务器上的路径就可以了。
[/Quote]
并不是上传文件的名称,如果是上传文件的名称,那么就不要问了,直接用IO.PATH.GetFileName我就可以取到上传文件的名称,我要是上传文件的全部路径,如(d://123.txt)这样子的一个路径信息,才可以。
因为在FTP上传文件的时候是通过路径去找的,而用SAVE.MAPTH 就只需要文件名 而这种 他是放在你当前项目文件夹下的。完全2中不同的形式。
hmte7ahwxy 2012-09-27
  • 打赏
  • 举报
回复
上传的话,楼主是不是想获得上传文件的全名,然后把全名和服务器上的名称进行关联?如果是这样的话,不用要路径的啊,只需要服务器上的路径就可以了。
  • 打赏
  • 举报
回复
还有就是说,在上传文件的时候,大家都会说用WEBSERVER啊 或者WCF服务 来上传文件,但是问题 在于我在传输大文件的时候,你是会要去占用服务器的网速,那么用FTP上传的方式就是为了解决在上传大文件传输的过程中减少对访问服务器的网速压力,在这个问题上 如果大家有什么好的解决办法也可以告诉我下
PS: 千万别说直接加网速,现在已经升级,但是还是慢
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

现在的浏览器不允许得到客户端的全路径,你怎么还要这个路径?要这个路径有什么意义?
客户端路径跟服务器端路径是完全不同的
[/Quote]
哇,连孟子都来了。 要这个路径的用处在于FTP上传文件的时候,根据这个路径找到这个文件,把文件放到FTP服务器上去。 没有路径的话 怎么解决FTP上传呢,如果说在FTP上传的时候,是可以不要上传文件的路径吗?
孟子E章 2012-09-27
  • 打赏
  • 举报
回复
现在的浏览器不允许得到客户端的全路径,你怎么还要这个路径?要这个路径有什么意义?
客户端路径跟服务器端路径是完全不同的
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

你其实可以上传的时候在你的项目文件夹里面建一个文件夹 直接查找文件夹的绝对路径就可以了
[/Quote]

现在是要把文件放到另外一个服务器上,而不是在IIS站点里面,如果放在IIS站点里面的话,文件量一大,IIS站点访问的时候就会比较慢。 而且系统基本上是以附件为主的流程化操作的。 所以你说的这种压根就不要做。
six-years 2012-09-27
  • 打赏
  • 举报
回复
你其实可以上传的时候在你的项目文件夹里面建一个文件夹 直接查找文件夹的绝对路径就可以了
six-years 2012-09-27
  • 打赏
  • 举报
回复
换个上传方法 网上多的是 随便荡
  • 打赏
  • 举报
回复
又没人了????? 我了个去???
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

FF Chrome 都不可以获取全路径,再说 上传文件不需要全路径
[/Quote]
我上传用的是FTP模式上传的,没全路径我到哪里找上传文件呢,如果是直接把文件放在IIS站点内那肯定不需要路径,但是现在我的文件上传是上传到另外服务器上的。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

用input type="file"的话,无解。
[/Quote]

那你的意思是用FileUpload 可解???? 那也可以在input后面加上 server 那也是服务器控件了啊。
w290601645 2012-09-27
  • 打赏
  • 举报
回复
FF Chrome 都不可以获取全路径,再说 上传文件不需要全路径
dalmeeme 2012-09-27
  • 打赏
  • 举报
回复
用input type="file"的话,无解。
  • 打赏
  • 举报
回复
这问题,真的就无解吗? 都没人会
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 的回复:]

客户在浏览页面的时候,是已经在B上面了

这是完全错误的,谁教给你的?

客户在浏览页面的时候,是已经在B上面了,2台机器相差多远都不知道,怎么会在B上了?

不要拿你自己的机器既当客户端,又当服务器去测试!
[/Quote]

其实我已经找到解决办法了,可以解决了,谢谢孟子一天的回复。
加载更多回复(17)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧