[WebMethod] public void download(string filename) { string conn = @"Data Source=.;Initial Catalog=sql;Integrated Security=True"; string str = "select FileByte from TestFile where FileName=filename "; string path = "c://"+filename; SqlConnection myconn = new SqlConnection(conn); SqlDataAdapter sda = new SqlDataAdapter(str, conn); DataSet myds = new DataSet(); myconn.Open(); sda.Fill(myds); myconn.Close(); Byte[] Files = (Byte[])myds.Tables[0].Rows[0]["FileByte"]; BinaryWriter bw = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate)); bw.Write(Files); bw.Close(); }
其中 这一句 string path = "c://"+filename; 是点击下载保存后的文件地址,这种写法是只能把文件默认写进c盘,我想让它获得用户自己选择的保存路径,请问怎么修改?
你这代码是运行在服务器上的,没法把文件保存到客户端的磁盘上。
你是说不能够自定义选择路径还是根本不能保存到磁盘?
我调试过了,可以保存到string path里写的路径上
@Mr.sorry: 你这代码是运行在服务器上的,只能保存在服务器的磁盘上,没法保存在客户端的磁盘上。你能明白我所说的代码运行在服务器上和运行在客户端的区别吗?
@程序猿.码农: 我是初学者,请问您能能说说怎么修改达到要求吗?
@Mr.sorry: 你得先把你的需求描述清楚。
@程序猿.码农: 通过用户点击下载按钮将文件保存在自己的磁盘上,这是我做的样式,但是下载只能默认写进c盘
@Mr.sorry: 非要用web service 吗?
@Mr.sorry: 这是在你本地调试的,如果把程序放到服务器上,你怎么能保存到你本地呢?
你这段代码的结果就是如果别人访问你的网站,最后的结果是文件写到你自己的机器上,而不是访问者的机器
服务器 端不知道,客户端的路径的。
看半天没明白你问题描述的意思……你是想通过WebService实现文件下载功能吗?
嗯
@Mr.sorry: 那直接将Webservice的方法返回byte[]不就行了啊?