日期:2014-05-17  浏览次数:20480 次

通過js獲取file路徑
有一自定義的控件﹐onclick的時候通過js觸發file,獲取file的路徑
思路如上﹐但是我取不到路徑..代碼如下
HTML code

<script type="text/javascript">
  function   OpenFile()   
  {   
       document.getElementById('file').click();
       var path = document.getElementById('file').value;
       document.getElementById('TextBox1').value=path;
      
  }
</script>

 <input id="file" type="file" runat="server"  name="file" />
 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />

 <cc1:uimagebutton id="btn_cardinfoinsert" runat="server"  disableimgurl="~/image/cardinfo_insert_.gif" enableimgurl="../../image/cardinfo_insert.gif" imageurl="../../image/cardinfo_insert.gif" OnClick="btn_cardinfoinsert_click" >
 </cc1:uimagebutton>



C# code

 protected void Page_Load(object sender, EventArgs e)
    {
       btn_cardinfoinsert.Attributes.Add("onclick", "OpenFile()");
       //btn_cardinfoinsert觸發file的控件
    }

 protected void btn_cardinfoinsert_click(object sender, EventArgs e)
    {      
        //string card_path = ? 這里應該取路徑了吧
             string ss = this.TextBox1.Text.ToString();//沒東西....
        //而且加了btn_cardinfoinsert.Attributes.Add()后﹐btn_cardinfoinsert_click這個事件就靜悄悄了﹐沒反應了.   
    }



麻煩各位看看我要怎么改﹖我是想在btn_cardinfoinsert_click()事件里面獲得路徑﹐再讀取文件內容的
加了btn_cardinfoinsert.Attributes.Add()后﹐讀不到路徑﹐事件也沒反映了.
只是實現了原file的打開文件對話框..完全就成了file按鈕了...

------解决方案--------------------
JScript code

//一样用的吧??
var path='c:\\こんにちは\\結婚.txt';
alert(path)
alert(path.substring(path.lastIndexOf("\\")+1))

------解决方案--------------------
楼上js貌视我在js版的code -_-"

HTML code
<input type="file" id="file" onchange="document.getElementById('TextBox1').value=this.value"/><input type="button" onclick="OpenFile()" value="选择"/><br/>
<input type="text" id="TextBox1"/>
<script type="text/javascript">
  function   OpenFile()   
  {   
       document.getElementById('file').click();//调用选择文件,但并没有阻塞js的执行,所以下面2句继续执行
//但你未选择文件,所以TextBox1是空的
       //var path = document.getElementById('file').value;
       //document.getElementById('TextBox1').value=path;      
  }
</script>

------解决方案--------------------
如果你是写在ascx用户控件中 
document.getElementById('file') 要写成
document.getElementById('<%=file.ClientID')

------解决方案--------------------
是的,好的东西,贵在用啊!哈哈,不过我这里用的不对似的!呵呵,学习啊!