最近在学习使用ajax的一些控件,配合FileUpload控件读取本地文件的文件流的时候出现了一个问题.因为这里要添加一个button控件,在单 击button控件的时候触发事件,读取文件流到一个textbox控件里面,这里在button事件里面取fileupload控件的 FileUpload.PostFile.FileName时出现错误,在这里一直取不到FileUpload内的路径,在网上找了找发现这个还是个普遍 的问题,找了两天也没有找到解决的方法.看到一个朋友在这里使用框架页来解决,所以也借用别人的方法来实现.
<
iframe id
=
"
file
"
src
=
"
FrameFileBrowse.aspx
"
runat
=
"
server
"
></
iframe
>
在FrameFileBrowse.aspx页面里面不在使用updatepanel控件,结果可以满足自己的要求.后来向同事请教这个问题,一个同事建议使用javascript来实现.并写了一个javascript函数.如下:
<script>
/*读取FileUpload控件所选择文件的文件流*/
添加一个html的button控件,<input id="Button1" type="button" value="读取文件" onclick="Getfileinfo();" />
结果运行完全可以,在后台可以直接使用TextBox1.Text来读取所要的信息.


<script>
/*读取FileUpload控件所选择文件的文件流*/
1
function Getfileinfo()
2
{
3
var fso
,
f
,
file;
4
var ForReading
=
1
;
5
var path
=
form1
.
FileUpload1
.
value;
6
fso
=
new ActiveXObject(
"
Scripting.FileSystemObject
"
);
7
file
=
fso
.
GetFile(path);
8
f
=
fso
.
OpenTextFile(path
,
ForReading);
9
form1
.
TextBox1
.
innerText
=
f
.
Read
(file
.
Size);
10
f
.
Close
();
11
}
12
</
script
>

2

3

4

5

6

7

8

9

10

11

12

添加一个html的button控件,<input id="Button1" type="button" value="读取文件" onclick="Getfileinfo();" />
结果运行完全可以,在后台可以直接使用TextBox1.Text来读取所要的信息.