嗯,我承认自己是半个标题党了~
FileUpload在asp.net中有两个限制,一是文件大小的限制,默认4M,但可以更改。另一个是无法设置上传文件路径,filename和Postfile.filename都是只读属性,就算能设置也不一定能显示在那个Textbox里。
首先,它会先检查路径不空的话,检查第二位是否为冒号(:),如果不是,点击按钮不会触发事件。例如随便输入123,点击是没反应的。
要想它对123也有反应,就需要加客户端script了,设置onclientclick属性。
function Upload()
{
var UploadString = document.getElementById("FileUpload1").value;
if (UploadString.substr(1, 1) != ':' && UploadString != '')
{
alert("====");
document.getElementById("FileUpload1").focus();
return false;
}
return true;
}
其次,在点击按钮,提交服务器时,不管按钮事件中是否有FileUpload的成员,它均会先读取文件信息。如果大于设置的文件大小(默认4M),直接转到无法显示页面。这个也是拿它没法,需要在客户端先检查~~至于如何检查,我没写,留给JS强人来解决吧。
接下来,文件信息读取后被设置到控件成员中,那就是我们知道的事了。
这个只是经验所得,有问题大家尽管提~~
关于读取文件信息,IE先读取文件到内存,大于预定值就不读取直接转到无法显示页面,不大于就读取完,放在某地,不了解是否已传到服务器上(自己的电脑就是服务器,无法判断)。最后调用saveas方法时,将文件写到相应地点。