FileUpload控件如何获取要上传文件的路径?
FileUpload如何获取要上传文件的路径? 选中之后怎么获取他的路径? --------------------编程问答-------------------- string path = Server.MapPath("~/bc/");BC为文件夹,然后绝对路径是 path=path+FileUpload1.FileName; --------------------编程问答--------------------
+1 --------------------编程问答-------------------- Server.MapPath方法是获取文件物理路径 --------------------编程问答-------------------- 我要获取的是服务器端的路径! --------------------编程问答-------------------- 是的,以上方法就是获取服务器端的路径 --------------------编程问答-------------------- 你先试试吧,Server.MapPath(文件名)也这也可以直接获取,但要文件和网页在同一根目录,还是用我一楼的方法吧。。我常常用来上传MP3 --------------------编程问答-------------------- FileUpload1.FileName,这个是文件名称,FileUpload1.PostedFile.FileName这个是整个路径 --------------------编程问答-------------------- string path = this.Server.MapPath("/ImgUpload/");//获取服务器存放物理路径
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);//保存文件
例:d:\1.TXT
FileUpload1.FileName是文件名称:1.TXT
FileUpload1.PostedFile.FileName是文件包含路径全名:d:\1.TXT --------------------编程问答-------------------- FileUpload1.PostedFile.FileName 只能获取到文件名字不能取到整个路径。
难道是我人品太差? 真的获取不到! --------------------编程问答-------------------- string filename = this.FileUpload1.PostedFile.FileName; --------------------编程问答-------------------- FileUpload1.PostedFile.FileName 只能获取到文件名字不能取到整个路径。
就是获取文件名。。。
string path = Server.MapPath("~/bc/");BC为文件夹,
假设BS文件夹为上传文件所在文件夹,PATH就是获取BC文件夹的服务器绝对路径;
那么总路径为path=path+FileUpload1.FileName;
这样就可以获取全部绝对路径,就是我一楼的方法。。。。 --------------------编程问答--------------------
肯定是不知道文件夹名称啊? 因为我用的是选择上传控件 选择之后点击提交获得路径
路径肯定不是在我的项目下面! --------------------编程问答-------------------- using System.IO;
string path = Server.MapPath("~/bc/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
查看有没有BC这个文件夹,没有就创建。。。。 --------------------编程问答--------------------
+1 --------------------编程问答--------------------
我的问题解决了!原来是IE8上面的一个安全级别问题! 呜呜.
FileUpload1.PostedFile.FileNam 这个还是可以获取到路径的!
学习了... --------------------编程问答-------------------- string path = this.Server.MapPath("/ImgUpload/");//获取服务器存放物理路径
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);//保存文件
例:d:\1.TXT
FileUpload1.FileName是文件名称:1.TXT
FileUpload1.PostedFile.FileName是文件包含路径全名:d:\1.TXT
参考
http://topic.csdn.net/u/20100109/22/d08b5c98-16c8-4e45-ac86-b12b678be25f.html --------------------编程问答--------------------
服务器端的路径跟IE设置没有关系的。你的理解是错误的。
--------------------编程问答--------------------
获取客户端的文件路径是没有任何意义的。这个路径不等于服务器端的路径 --------------------编程问答--------------------
服务器端的路径是要你自己设定的啊
你搞清楚服务器的路径和客户端的路径了没有啊 --------------------编程问答-------------------- 楼主是要获取源文件路径吗?
这个 用js实现
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="BorrowPage.aspx.cs" Inherits="Borrow_BorrowPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>xxx上传</title>
<!--获取文件上传地址-->
<script type="text/javascript">
function checkFile()
{
//判断浏览器类型
var isIE = (document.all) ? true : false;
var isIE7 = isIE && (navigator.userAgent.indexOf('MSIE 7.0') != -1);
var isIE8 = isIE && (navigator.userAgent.indexOf('MSIE 8.0') != -1);
var file=document.getElementById("UpLoadBorrow");
var path=file.value;
if(isIE7 || isIE8)
{
file.select();
path=document.selection.createRange().text;
document.selection.empty();
}
document.getElementById("txtFilePath").value=path;
}
function checkNull()
{
var path=document.getElementById("txtFilePath").value;
if(path=="" ||path==null)
{
alert('请选择要上传的文件!');
return false;
}
return true;
}
</script>
<base target="_self"/>
</head>
<body style="background-color:#0099FF;">
<form id="form1" runat="server">
<div style="margin:0px auto 0px auto;">
<asp:Image ID="Image1" runat="server" BorderStyle="Double" Width="750" ImageAlign="Middle" AlternateText="上传"/>
<br />
上传:<asp:FileUpload ID="UpLoadBorrow" runat="server" Height="22px" onchange="checkFile()" onkeydown="event.returnValue=false;" onpaste="return false" />
<input type="hidden" id="txtFilePath" runat="server" />//这里建立一个隐藏域 用来存地址
<asp:Button ID="btnUpload" runat="server" Text="上传" OnClientClick="return checkNull()" OnClick="btnUpLoad_Click" />
<asp:Button ID="btnBack" runat="server" Text="返回" onmousedown="window.close();" /></div>
</form>
</body>
</html>
后台
--------------------编程问答-------------------- 那个我看FileUpload1.PostedFile.FileNam这个是能过去路径的问题都是出现在IE8,IE8有时候还不能调试呢? --------------------编程问答-------------------- 这个是上传到服务器的跟路径
string inputPath = txtFilePath.Value.Trim();
string str = HttpContext.Current.Request.ServerVariables[ "APPL_PHYSICAL_PATH" ];
然后在加上
string path=str+"文件夹\\"+fileName; --------------------编程问答--------------------
path = HttpRuntime.AppDomainAppPath + path;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string strSavePath = path + strSaveName;
方法很多,可以试一下上面这种 --------------------编程问答-------------------- 我也发现了这个问题,在我的程序里想要获取完全路径是想通过其来验证文件的类型,请问楼主如果是由IE8本身的安全设置导致的,那么是不是说在实际应用中还是不能够使用?如果客户端采用了相应安全级别的浏览器? --------------------编程问答-------------------- --------------------编程问答--------------------
--------------------编程问答-------------------- 上面的字体颜色设置,);没做作用
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Register : System.Web.UI.Page
{
BusUser bu=new BusUser ();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string imageurl = "";
if (fuImage.PostedFile.FileName != "")
{
imageurl = fuImage.FileName;
} Users oneuser = new Users();
oneuser .User_PetName =txtPetName .Text ;
oneuser.User_Name = txtName.Text;
oneuser.User_Tel = txtTel.Text;
oneuser.User_Pwd = txtPwd.Text;
oneuser .User_Email =txtEmail.Text ;
oneuser.User_Image = imageurl;
oneuser.User_Sex = int.Parse(rblSex.SelectedValue);
oneuser .User_Address =txtAddress .Text ;
oneuser.User_Open = true;
oneuser.User_AddTime =DateTime .Parse ( DateTime.Now.ToShortTimeString ());
if (bu.GetUserByName(txtName.Text) == null)
{
if (bu.addUser (oneuser))
{
fuImage.SaveAs(Server.MapPath("./") + "/images/" + imageurl); Response.Write("<script>alert('注册成功');window.location.href='Default.aspx'</script>");
}
else
{
Response.Write("<script>alert('注册失败')</script>");
}
}
else
{
Response.Write("<script>alert('该用户已经存在,请更换用户名,再次添加')</script>");
}
}
}
注意 --------------------编程问答-------------------- 在IE8中用FileUpLoad.PostedFile.FileName获取的只是上传文件的名称,怎么解决这个问题 --------------------编程问答-------------------- FileUploadAdd.PostedFile.FileName 全部路径
FileUploadAdd.FileName 文件名称
this.Server.MapPath(“xx”) 物理路径 --------------------编程问答-------------------- --------------------编程问答-------------------- document.getElementById("FileUpload1").select(); //选中FileUpload控件中的文本
var path = document.selection.createRange().text; //获取当前文本选中的文本 --------------------编程问答-------------------- document.getElementById("fupLogo").select(); //选中FileUpload控件中的文本
//获取当前文本选中的文本document.selection.empty();
var path = document.selection.createRange().text; --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 两个都 可以 --------------------编程问答-------------------- 奇了,怪了,chrome浏览器在这两个都是只获取到文件名,没有路径
FileUpload1.FileName,这个是文件名称,FileUpload1.PostedFile.FileName这个是整个路径 --------------------编程问答-------------------- 我也遇到了这个问题,不知道怎么解决呢 --------------------编程问答-------------------- 我也遇到了这个问题. --------------------编程问答-------------------- 就楼主的问题而言,上面已经给出了,我只想说一下,除非你搞winfrom,做web用FileUpload不行的,谷歌和火狐下得不到客户端文件的路径,这不是浏览器兼容性问题,而是浏览器本身安全性角度的保证,你只能用flash上传控件来做上传兼容处理,不信可以试试 --------------------编程问答-------------------- - - web的fileupload 有安全机制 无法获得服务器路径。 只能通过JS或者修改部分浏览器设置来得到客户端路径。。 建议 使用html控件file 通过表单提交的方式来上传 --------------------编程问答-------------------- 坑爹GOOGLE就是不行 --------------------编程问答-------------------- mark... --------------------编程问答--------------------
+1
+1 --------------------编程问答--------------------
正解
补充:.NET技术 , ASP.NET