=========关于本地路径与服务器路径的问题=========
问题描述:现有三台电脑A、B、C,A是用来进行开发WEB程序,B是WEB服务器,C是一台客户端。要实现的功能为:在本地机上通过HTML的Input控件选择本地的一图片位置,然后将该图片读成二进制文件保存到数据库中(假设为D电脑),我在A电脑中代码如下:
if (this.Input.PostedFile.FileName != "")
{
System.IO.FileInfo objfile = new System.IO.FileInfo(this.Input.PostedFile.FileName);
string picfileurl = objfile.FullName;
if (picfileurl != "")
{
byte[] blob = GetBinaryFile(picfileurl);
//GetBinaryFile是把文件变成二进制的一个函数
//这个函数包含了一个如下判断文件是否存在的函数:File.Exists(FileName)
}
}
这样开发完毕后,我发现在自己的电脑上运行正常,但是当我将这些程序发布到WEB服务器B上的时候,从客户端电脑C进行访问B上我的程序的时候,问题出现了:不能正常工作。我分析了一下原因:当在C上访问B上程序的时候,C以B的身份在运行程序,而使用Input控件获取的文件地址是C上的路径,而这个路径在B上并不存在,所以也就找不到这个文件,程序就不能正常。
我的要求是如何能够获取到本地的路径也就是C上的文件地址将其上传,帮帮忙吧
问题点数:50、回复次数:10Top
1 楼triffang(冲凉不除3)回复于 2005-09-30 12:46:30 得分 0
晕,说了一大堆。可能时你的WEB服务器那个存文件的文件夹没权限吧!Top
2 楼wzs_wzs123(蓝天百云)回复于 2005-09-30 12:55:38 得分 15
你得函数写的就有问题,首先要把上传上来的文件保存在服务器上,
然后才能对文件进行读取等操作
string sPath=你要保存到服务器上的路径+文件名、;
if (this.Input.PostedFile.FileName != "")
{
this.Input.PostedFile.SaveAs(sPath);
System.IO.FileInfo objfile = new System.IO.FileInfo(sPath);
string picfileurl = objfile.FullName;
if (picfileurl != "")
{
byte[] blob = GetBinaryFile(picfileurl);
//GetBinaryFile是把文件变成二进制的一个函数
//这个函数包含了一个如下判断文件是否存在的函数:File.Exists(FileName)
}
}
Top
3 楼daci(daci)回复于 2005-09-30 13:10:57 得分 0
我在C上运行,调用Input控件的时候获取的路径是在C上的本地文件阿,但当我引用B上的页面的时候,自然的会按照这个路径在B上找文件,B上没有肯定会出错阿。我现在就是想把c上的本地文件获取到,读成二进制文件,然后保存到数据库中的blob字段中。
有两个问题啊:
this.Input.PostedFile.SaveAs(sPath),这句话干什么呢
怎么把文件上船到服务器,我就是连本地文件都不能获取阿Top
4 楼wzs_wzs123(蓝天百云)回复于 2005-09-30 13:34:13 得分 15
应用程是在后台与运行的,读取不到客户端的文件,只有上传到服务器上才行
this.Input.PostedFile.SaveAs(sPath),就是把客户端的文件保存到服务器上Top
5 楼foxconn_nich(Blog: http://www.jemy.cn)回复于 2005-09-30 13:40:20 得分 20
this.Input.PostedFile.SaveAs(sPath)//将选定的文件保存到服务器Top
6 楼daci(daci)回复于 2005-09-30 15:03:22 得分 0
sPath这个的路径格式是C:\tmp\tem.doc还是file:\\\C:\tmp\tem.doc,这种格式就把我搞晕了。
Top
7 楼daci(daci)回复于 2005-09-30 15:41:35 得分 0
谢谢几位,上传文件的问题已经解决。现在遇到的问题是:
1、怎样把文件读取到本地电脑呢,我读的时候总是读到服务器上;
2、如果不用这个Input怎么样才能把文件上传到服务器上,然后进行操作?
Top
8 楼daci(daci)回复于 2005-09-30 17:49:03 得分 0
看来沉底了,顶Top
9 楼moodboy1982(老鹰)回复于 2005-09-30 21:13:22 得分 0
读到本地?
那你要写客户端的插件,还要有权限。Top
10 楼daci(daci)回复于 2005-10-06 13:06:51 得分 0
to moodboy1982(自由人):
客户端插件,能说得具体些吗?Top




