怎么用Jquery获取客户端上上的 input[type=file] 的绝对路径

九幽之君 2014-11-25 05:28:19
如题,我已经试过了各种办法,我不想用服务器控件,所以暂时不考虑服务器控件。
请各位大神指教啊~!
各位如果愿意指教,我不甚感激。但我希望是你已经试过了或者是十分确定完全可以,我只想做个文件上传功能,先谢谢了~!
...全文
35573 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltcszk 2014-11-26
  • 打赏
  • 举报
回复
引用 7 楼 u010037549 的回复:
[quote=引用 5 楼 starfd 的回复:] 补充下,如果只是上传的话,根本不需要知道文件在客户端的物理路径
好吧,我只要做一个邮件发送的添加附件功能,因为添加附件时是需要物理路径的,不然我就只有把文件复制一份到服务器然后在操作其他,但是添加附件不代表已经开始传送了邮件和附件了,这样别人添加然后删除再添加时很有问题的,如果大家有什么办法请帮个帮。 拜谢[/quote] 现在所有网页邮箱都是先把附件传到服务器上再发送邮件的,这个流程没问题
insus 2014-11-26
  • 打赏
  • 举报
回复
引用 7 楼 u010037549 的回复:
[quote=引用 5 楼 starfd 的回复:] 补充下,如果只是上传的话,根本不需要知道文件在客户端的物理路径
好吧,我只要做一个邮件发送的添加附件功能,因为添加附件时是需要物理路径的,不然我就只有把文件复制一份到服务器然后在操作其他,但是添加附件不代表已经开始传送了邮件和附件了,这样别人添加然后删除再添加时很有问题的,如果大家有什么办法请帮个帮。 拜谢[/quote] Insus.NET的做法,在站点建有一个Temp目录,用户临时或是需要操作的文件,均在此temp目录进行。
宝_爸 2014-11-26
  • 打赏
  • 举报
回复
引用 7 楼 u010037549 的回复:
[quote=引用 5 楼 starfd 的回复:] 补充下,如果只是上传的话,根本不需要知道文件在客户端的物理路径
好吧,我只要做一个邮件发送的添加附件功能,因为添加附件时是需要物理路径的,不然我就只有把文件复制一份到服务器然后在操作其他,但是添加附件不代表已经开始传送了邮件和附件了,这样别人添加然后删除再添加时很有问题的,如果大家有什么办法请帮个帮。 拜谢[/quote] 好像就的复制到服务器上吧。 如果你只是保存客户端路径,在浏览器中没法访问文件啊,不管是客户端还是服务器端。
九幽之君 2014-11-26
  • 打赏
  • 举报
回复
引用 3 楼 insus 的回复:
Refer here: http://www.cnblogs.com/insus/p/3639363.html
本地的话随便写都可以。关键是到服务器上之后就有问题,我也想过折中的办法,就是我用一个服务器控件FileUpload 和一个服务器的Button ,一个选择文件,一个点添加,因为在服务器端FileUpload.PostedFile.FileName属性是可以获取物理路径的,然我写一个动态Jquery 添加到页面结果还是一样是有文件名。 /// <summary> /// 添加附件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void BtnAddAttached_Click(object sender, EventArgs e) { string fileName = this.FileUploadAttached.FileName; //获取已上传文件的名称; if (fileName.Trim() == "") { this.LblAddAttached.Text = "请选择文件!"; return; } else { this.LblAddAttached.Text = ""; } string fileUrl = FileUploadAttached.PostedFile.FileName; fileUrl = fileUrl.Replace('\\', '/'); StringBuilder sb = new StringBuilder(); sb.Append("<script type='text/javascript'>"); sb.Append("var AddAttachedhtml = '<label class =\"LabAddAttached\" title =\"" + fileUrl + "\">" + fileName + "<img src=\"../image/DGMFXBackstage/CancelAddFile.png\" alt =\"取消\" title =\"取消\" /></label>';"); sb.Append("$('.TdAddAttached').append(AddAttachedhtml);"); sb.Append("CancelAdd();"); sb.Append("alert(" + fileUrl + ")"); sb.Append("</script>"); this.Page.ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString()); }
九幽之君 2014-11-26
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
补充下,如果只是上传的话,根本不需要知道文件在客户端的物理路径
好吧,我只要做一个邮件发送的添加附件功能,因为添加附件时是需要物理路径的,不然我就只有把文件复制一份到服务器然后在操作其他,但是添加附件不代表已经开始传送了邮件和附件了,这样别人添加然后删除再添加时很有问题的,如果大家有什么办法请帮个帮。 拜谢
宝_爸 2014-11-26
  • 打赏
  • 举报
回复
不是一个好的需求。按理说服务器不需要知道文件在客户端的路径。 建议看看需求是不是有问题。
九幽之君 2014-11-26
  • 打赏
  • 举报
回复
好吧,我也这样做了
  • 打赏
  • 举报
回复
补充下,如果只是上传的话,根本不需要知道文件在客户端的物理路径
  • 打赏
  • 举报
回复
少年,你死心吧,低版本的浏览器还可以通过js获取文件在客户端的物理路径,但在高版本的浏览器上(就比如IE9),为了保证安全是获取不到文件在客户端的绝对路径的
insus 2014-11-25
  • 打赏
  • 举报
回复
完美的神速 2014-11-25
  • 打赏
  • 举报
回复
你为什么要使用浏览器的file控件呢? 首先,可以告诉,jquery实现起来有些不可能,js可以,但是在不同浏览器下,因为安全问题,也会有问题。 如果你不使用runat="server"控件,自己实现起来还是很麻烦的。 为什么不去使用第三方的控件,比如uploadify这种优秀的插件。
九幽之君 2014-11-25
  • 打赏
  • 举报
回复
自己先顶一下

62,243

社区成员

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

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

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

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