大哥们!救急!.net下如何实现单击按钮弹出文件选择对话框?
类似FileUpload控件,但FileUpload控件默认打开的是客户端的“我的桌面”
我希望能做一个类似FileUpload的功能 但点击“浏览”后是打开事先设置好的服务器端的文件夹。
这样我就可以选择服务器端的图片或文件资源而不需每次都要本地上传。
是不是有高手有自己做好的类?
要求有具体的原代码~!分不够再加!
------解决方案--------------------学习~~~
------解决方案--------------------你的意思是说需要在本地打开并显示服务器的目录,文件,并操作服务器目录的 文件对话框?
有难度。因为如果很容易实现的话,就不安全了。
------解决方案--------------------操作系统的文件对话框是不可能的。但是你可以自己做一个类似的web对话框,读取你服务器的文件信息显示出来。
但,这不是你点击“浏览”后的文件对话框哦
------解决方案--------------------ding
------解决方案--------------------只有自己写一个,通过 Directory类、File类等读取文件夹或文件名(MSDN上写等很清楚),然后显示在页面上,再结合Ajax效果上应该是能处理得很好的。但就有是前面有朋友提到的安全问题,除非只是内部使用的软件。
------解决方案--------------------你说的对话框是没有办法实现的,只有前面说的,自己做一个显示服务器文件的树
------解决方案--------------------用activex可以实现
------解决方案--------------------学习中...
------解决方案--------------------如果可以打开服务器的文件夹,那安全性何在?
------解决方案--------------------一起学习
------解决方案--------------------protected void TreeView1_PreRender(object sender, EventArgs e)
{
TreeNode tn = TreeView1.Nodes[0];
TreeView1.Nodes[0].Text = @ " <span id= ' " + Server.MapPath( "../ ").Replace( "\\ ", "\\\\ ") + @ " '); return false; " "> 内容管理系统 </span> ";
if (tn.ChildNodes.Count == 0)
{
tn.Value = Server.MapPath( "../ ");
PhysicDirectory getDirectory = new PhysicDirectory();
Hashtable htb = getDirectory.GetChildDirectory(Server.MapPath( "../ "));
foreach (DictionaryEntry de in htb)
{
TreeNode NewNode = new TreeNode(de.Value.ToString(), de.Key.ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Select;
//by jnx:地址编码,防止部分服务器报错
string naviurl = Server.UrlEncode(de.Key.ToString());
NewNode.NavigateUrl = "DirectoryInfoList.aspx?dir= " + naviurl;
NewNode.Target = "mainFrame ";
NewNode.Text = @ " <span id= ' " + de.Key.ToString().Replace( "\\ ", "\\\\ ") + @ " '); return false; " "> " + de.Value.ToString() + @ " </span> ";
tn.ChildNodes.Add(NewNode);
}
}
}
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
if (e.Node.ChildNodes.Count == 0)
{
PhysicDirectory getDirectory = new PhysicDirectory();
Hashtable htb = getDirectory.GetChildDirectory(e.Node.Value.ToString());
foreach (DictionaryEntry de in htb)
{
TreeNode NewNode = new TreeNode(de.Value.ToString(), de.Key.ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Select;